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