Show the text encoding of every file in a folder on one screen, and convert encodings individually or in batch.
Usage
- Explorer: right-click a folder → Batch Encoding
- Command Palette: Batch Encoding: Whole Project (scans the workspace root)
The panel shows a folder tree on the left and an encoding matrix on the right. Each file has a ● mark in the column of its detected encoding.
- Click a cell → convert that file to the column's encoding (after confirmation)
- Click a column header → convert every file to that encoding (after confirmation)
- + Add → append another encoding column
- ⟳ Reload → rescan
Notes
- Columns are auto-populated from the encodings detected in the folder; the ASCII column (leftmost) is display-only — ASCII files are valid in any encoding and are never converted.
- Binary files, empty files, and files whose encoding cannot be detected are shown dimmed and skipped by batch conversion.
- EUC-KR and CP949 are distinguished by byte range: files using CP949-extended syllables (e.g. 뷁) show under CP949. Files limited to KS X 1001 are byte-identical in both encodings and always show under EUC-KR.
- Conversions are refused when they would lose characters (e.g. Korean text → Windows 1252) or when the file has unsaved changes in an editor.
Settings
batchEncoding.exclude: file/folder names to skip (default[".git", "node_modules"])
Development
npm install
npm run compile # or: npm run watch
# F5 in VSCode → "Run Extension"
node test/make-fixtures.js # regenerate test/fixtures
npm run package # build .vsix