Hangul Mojibake Fixer
Fix Korean text and file names made on a Mac that appear as separated jamo or garbled on Windows. Supports NFD↔NFC conversion, jamo joining/splitting, batch file-name conversion and encoding-mismatch recovery.
macOS stores Hangul decomposed (NFD, "ㅎ + ㅏ + ㄴ") while Windows and Linux store it composed (NFC, one syllable "한"). Paste the broken-looking text and convert it to NFC.
Accented non-Korean characters (é ü ñ) are converted the same way.
Analysis
Code points before
Code points after
"가" is one code point U+AC00 in NFC and two (U+1100 U+1161) in NFD.
Standalone jamo typed on a keyboard (ㅎㅏㄴㄱㅡㄹ) are not joined by NFC conversion. Join them into syllables here, or split syllables back.
Joining rules
- A consonant followed by a vowel becomes the initial of the next syllable. ㄷㅏㄹㄱㅏ becomes "달가".
- Compound finals (ㄹㄱ→ㄺ) and compound vowels (ㅗㅏ→ㅘ) are joined only for valid pairs.
- Typing the same consonant twice for a double consonant (ㄱㄱ) is not joined; enter ㄲ as one character.
- ㅇㅏㄴㅇㅏ joins as "안아". Put a space between them if you want it read differently.
Paste file names one per line, or drop files and folders here. Only names are read. To fix files inside a folder, open it, select all the files and drop them.
Drop files or folders here
or choose files
| Original name | New name | Status |
|---|
Rename scripts
Run them in the folder that contains the files. Review the commands first and back up important files.
macOS file systems sometimes treat NFC and NFD as the same name, so the terminal script renames through a temporary name.
For automatic real-time conversion on a Mac, see nfd2nfc (macOS-only tool). nfd2nfc
Paste text garbled by a wrong encoding, such as "안녕", "¾È³ç" or "�쒓�", and the original is estimated. Useful when names break after unzipping a Mac ZIP on Windows.
Recovery candidates
Recovery works only when the bytes survived. If there are several candidates, pick the one that reads correctly.
Convert text to and from UTF-8 or EUC-KR bytes, percent-encoding (URL), Base64, HTML entities, \u escapes, Unicode code points and UTF-16. Unlike "Garbled text", which guesses how broken text was damaged, this converts exactly the way you choose.
Turns text typed with the wrong layout ("dkssud") into Hangul ("안녕"), and back. Based on the standard 2-set (dubeolsik) keyboard.
Only Q W E R T O P change with Shift (ㅃ ㅉ ㄸ ㄲ ㅆ ㅒ ㅖ); other capitals read as their lowercase jamo. Digits, symbols and spaces are kept.
Converts Hangul to Latin letters following the Revised Romanization of Korean (2000). Words and sentences follow pronunciation rules; personal names are transcribed letter by letter, with common surname spellings shown as candidates.
Standard and limits
- This is the official standard. If you already use a spelling on your passport, keep it — common spellings such as Kim or Lee are shown as candidates.
- Tensification is not reflected, by rule (압구정 Apgujeong, 낙동강 Nakdonggang). Liaison, nasalization, lateralization, palatalization and ㅎ aspiration (좋고 joko) are reflected.
- Without a dictionary, morphology-dependent cases follow the general rule. For nouns, ㄱ/ㄷ/ㅂ + ㅎ keeps the h (묵호 Mukho, 집현전 Jiphyeonjeon); the verb 잡혀 is japyeo officially but comes out japhyeo here.
- Verbs like 읽고 (ㄺ before ㄱ read as ㄹ), exceptions like 밟다/넓다, and n-insertion (학여울) are not handled.
- Names may use hyphens between syllables or not (Gil-dong / Gildong). Either way, no sound changes are applied.
Extracts only the first consonant (choseong) of each Hangul syllable — useful for building initial-consonant search indexes or quizzes.
"삼성전자" → ㅅㅅㅈㅈ. Vowels and final consonants are dropped.
Text and file names you enter are used only in this browser and are never sent to a server. For files, only the names are read, never the contents.
Why does this happen?
macOS stores file names decomposed (NFD) and Windows and Linux use composed (NFC). A name made on a Mac can therefore look split into jamo elsewhere, and archives, Git and cloud sync may treat the same file as two. Also, unzipping a Mac-made ZIP on Windows reads UTF-8 names as the legacy Korean encoding (CP949), garbling them.
What this tool does not do
A browser cannot rename files on your computer, so this tool generates rename scripts instead. Garbling where the bytes are already lost (�) cannot be recovered; reopen the original with the correct encoding.
Add Hangul readings to text written in Chinese characters (hanja): replace the characters, append them as hanja(reading), or produce <ruby> markup. The reading table loads once when you first open this tab, and nothing you type is sent to a server.
Loading the reading table…
Find hanja by reading
Readings come from Unicode Unihan (kHangul); for characters with several readings the one used in the Ministry of Education basic hanja list is the default. This is not a dictionary, so polyphonic characters outside the built-in rules (e.g. 樂, 行) may be wrong — pick the right one in the list below. A run of consecutive hanja is treated as one word and the initial-sound rule applies only at its start (separate words with spaces). Meanings are not shown because Unihan has no Korean glosses.
A reference transcription only. Parts of the Korean Braille rules (quotation marks, brackets and so on) are not covered, so it is not an official transcription. Have official documents and publications checked by a braille proofreader. Nothing you type is sent to a server.
Large print
Supported: Hangul (initials, vowels, finals, compound finals, tense consonants), contractions, word contractions, numbers (number sign ⠼), Latin letters (⠴…⠲, capital ⠠), and . , ? !. To avoid ambiguity a contraction is not used when the next syllable starts with a vowel. Decoding has limits: a final ㅋ/ㅌ/ㅍ at the very end is read as punctuation, and ⠌ is read as the final ㅆ.
Send this text to another tool
The text is not put in the address; it moves only inside this browser. Nothing is sent to a server.
FAQ
Are my text or files uploaded?
No. Everything is converted in your browser, and for files only the names are read, never the contents.
I converted to NFC but a Mac still shows it the same.
A Mac may display it composed anyway. The trouble appears when moving to another system, so convert to NFC before moving.
It says names collide.
Two different names become the same name after conversion (for example the same name stored once as NFD and once as NFC). Remove or rename one first.
How to use this tool
Use it when a Korean file name made on a Mac shows as separated letters on Windows, or when text turns into strange characters. Tabs: NFD↔NFC conversion, joining and splitting jamo, batch file-name conversion and garbled-text recovery, plus Korean-English keyboard conversion, romanization, initial-consonant extraction, hanja readings and braille.
Frequently asked questions
File names made on a Mac look like split letters on Windows.
macOS stores Korean as separate jamo (NFD). Use the NFD↔NFC or batch file-name tab to convert them back.
My text looks garbled like 안녕.
This happens when text saved in one encoding is read as another. Paste it into the garbled-text tab to restore it; characters already lost cannot be fully recovered.
Is my text sent to the server?
No. Restoration happens in your browser.
Related tools
See all toolsText Cleaner
Remove line breaks, tidy spaces, drop duplicate lines, sort lines, convert full/half-width and straighten quotes in one click. Made for cleaning up copied text.
Markdown Preview
Write Markdown and see the result right next to it. Headings, lists, tables, code, quotes and checkboxes are supported, and you can copy the finished HTML. Optionally preview it with the same renderer the boards use (converted on the server).
Subtitle Editor (SRT · VTT)
Shift a subtitle file’s timing, stretch it to match a video’s frame rate, or fix everything by matching just two scenes. Also converts SRT ↔ VTT, wraps lines, strips tags and flags overlaps and subtitles that flash by too fast. Files are never uploaded.
Typing Practice
Measure your typing speed with proverbs, short sentences and longer passages — keystrokes per minute for Korean, WPM for English — plus accuracy and the characters you got wrong. You can also practise on your own text, and nothing you type is sent to a server.
Text to Speech
Reads your text aloud. Choose the speed, pitch and volume; it plays sentence by sentence and highlights the one being read. Only voices installed on your device are used by default, so your text does not leave it.
Word cards
Paste a front/back word list and the Leitner box method adjusts when each card returns based on whether you knew it. Guests save only in this browser; logged-in members save to their account to continue on other devices and share.