Korean Hangul writes each syllable as a single square block, but every block is built from smaller letters called jamo. This free tool reverses that composition, splitting any block into its initial consonant, medial vowel, and optional final consonant — for example 한 becomes ㅎ + ㅏ + ㄴ.
How it works
Modern Hangul syllables are encoded in a single contiguous Unicode range from U+AC00 (가) to U+D7A3 (힣), laid out as a perfect grid: 19 initials × 21 medials × 28 finals (the first final slot meaning “none”). To decompose a block the tool subtracts the base 0xAC00 and runs three integer operations:
choseong = floor(code / 588)
jungseong = floor((code % 588) / 28)
jongseong = code % 28
Each index is then looked up in the standard jamo tables. A jongseong of 0 means the syllable has no final consonant, so only two jamo are shown.
The three positions in a Hangul syllable
| Position | Korean term | Role | Example in 한 |
|---|---|---|---|
| Initial (choseong) | 초성 | Opening consonant | ㅎ |
| Medial (jungseong) | 중성 | Vowel | ㅏ |
| Final (jongseong) | 종성 / 받침 | Optional closing consonant | ㄴ |
Not every syllable has a final consonant. 나 (na) is ㄴ + ㅏ with no jongseong; 한 (han) is ㅎ + ㅏ + ㄴ. The 11,172 modern Hangul syllable blocks cover every valid combination of these three positions.
Why decompose to jamo?
Several practical tasks need the raw jamo:
- Romanization — converting 한국어 to Hanguk-eo works by mapping each choseong, jungseong, and jongseong to its Latin letter and then joining them with cross-syllable sound-change rules.
- Korean keyboard input — the 2-beol keyboard layout assigns each jamo to a key, so the jamo count of a word is the approximate keystroke count.
- Search and sorting — Korean dictionaries sort by choseong first, then jungseong, then jongseong, so indexing Korean words correctly requires this decomposition.
- Linguistic analysis — identifying vowel harmony, consonant clusters, or syllable weight in a corpus requires working at the jamo level.
- Learning tools — showing the component structure of syllables helps students understand Hangul composition rules rather than memorising blocks as wholes.
Compound jamo
Some jamo are themselves composite — compound vowels like ㅘ (= ㅗ + ㅏ) and compound finals like ㄳ (= ㄱ + ㅅ). In the Unicode block structure these are stored as single code points in the syllable, so this decomposer outputs them as one component each. If you need to split compound jamo further into their basic constituents, that requires a second pass over the jamo table with a lookup for compound forms.
This is the same arithmetic Korean input methods and romanizers use internally, so the output is exact for all 11,172 modern syllable blocks. Characters outside the Hangul syllable range (spaces, punctuation, Latin letters, isolated jamo) pass through unchanged. Everything runs locally in your browser — nothing is uploaded.