Broken Hangul Recovery
Repairs Hangul mangled by a CP949/UTF-8 mix-up by trying every plausible encoding path and previewing each.
Hangul turns into 뷁, 안녕 or 占쏙옙 when bytes written in one encoding are read as another, and which garbling you got tells you which pair of encodings was involved. This tries every plausible path back and shows you the result of each, so you pick the one that reads as Korean.
The broken text
A file name, a subtitle, one line of a CSV — paste anything and every plausible encoding path is replayed backwards.
Broken text is usually not damage but a *misreading*. The bytes are intact and only the table was wrong, so writing them back through the same table and reading them with the right one brings the text back. That is why nothing here guesses at characters: only paths that round-trip are offered.
Text that appears as separated letters (ㅇㅏㄴㄴㅕㅇ) is not an encoding fault at all but a Unicode normalisation one. macOS stores file names in NFD and Windows shows you the pieces. That case only needs composing.
How to use it
Paste the broken text or drop the file
For a file, the bytes are used directly, which recovers cases a copy-paste has already destroyed.
Read the candidates
Each path is labelled with the encodings it assumed. Only one of them will read as Korean; the rest will be a different kind of garbage.
Fix the source, not just this copy
If a CSV keeps arriving broken, the export encoding is the problem. Recovering each file by hand is a treatment, not a cure.
Common questions
Nothing recovers it.
Some garbling is lossy and cannot be undone. When bytes are decoded with a replacement character — the 占쏙옙 pattern is the classic case — the original values are gone, and no amount of re-encoding brings them back.
The file name is broken but the contents are fine.
A zip made on Windows stores names in CP949 without marking them, and a Mac or Linux tool reads them as UTF-8. Paste the broken name in as text — the contents were never affected.
Why does Excel keep breaking my CSV?
Excel on Windows opens a CSV as CP949 unless the file starts with a UTF-8 byte order mark. Saving with a BOM, or importing rather than opening, avoids it.
Feed it from
Subtitle Converter
Converts between SRT, VTT, ASS, SMI and plain text, fixing the encoding along the way.
Encoding Detector & Converter
Guesses a file’s character encoding — CP949, Shift_JIS, GB18030, Windows-1252 and more — with a side-by-side preview of each candidate, then re-saves it as UTF-8 (with or without BOM), UTF-16 or EUC-KR/CP949.
Resident Number Masker
Finds resident numbers in text or a spreadsheet column and masks them to the legally acceptable form.
Address Format Converter
Converts between lot-number and road-name addresses and normalises inconsistent address spellings.
Next
These accept what this tool produces, so the result can go straight in.
CSV Viewer
Opens a large delimited file with type detection, column stats and sorting, without loading it all into memory.
Subtitle Converter
Converts between SRT, VTT, ASS, SMI and plain text, fixing the encoding along the way.
Encoding Detector & Converter
Guesses a file’s character encoding — CP949, Shift_JIS, GB18030, Windows-1252 and more — with a side-by-side preview of each candidate, then re-saves it as UTF-8 (with or without BOM), UTF-16 or EUC-KR/CP949.
Unicode Normaliser
Applies NFC, NFD, NFKC or NFKD — the fix for Korean text from macOS that looks right but never matches.
Korean Age Calculator
Works out your 만나이, 연나이 and the old 세는나이 from a birth date, on any reference day.
Annual Leave Calculator
Works out how many paid leave days have accrued by joining date or fiscal year, including the first-year rule.