Productivity and Utilities

Hangul Jamo Decomposer and Composer

Paste Korean text to split it into jamo, or paste jamo to join them into syllables.

Up to 100,000 characters. Nothing is uploaded.

A Hangul syllable is stored as one character made from an initial consonant, a vowel and an optional final consonant: code = 0xAC00 + (initial x 21 + vowel) x 28 + final, with 19 initials, 21 vowels and 28 finals (0 for none). Splitting divides the code back into the three parts. Joining reads jamo in order: a consonant followed by a vowel starts a syllable, a vowel pair such as ㅗ and ㅏ becomes ㅘ, and a consonant that is followed by another vowel belongs to the next syllable. Compatibility jamo (ㅎ ㅏ ㄴ) are what a keyboard types. Conjoining jamo are the U+1100 characters that text engines join. Everything runs in your browser and nothing is uploaded.

Next step

How to use the hangul jamo decomposer and composer

  1. Choose Split into jamo or Join jamo.
  2. For splitting, choose compatibility jamo (what a keyboard types) or conjoining jamo.
  3. Paste Korean text or jamo.
  4. Read the result and, when splitting, the table of initial, vowel and final for each syllable.

Formula

Syllable code = 0xAC00 + (initial x 21 + vowel) x 28 + final

There are 19 initials, 21 vowels and 28 finals, where 0 means no final

Splitting: initial = (code - 0xAC00) / 588, vowel = the remainder / 28, final = the remainder after that

Syllables run from 가 (U+AC00) to 힣 (U+D7A3). Joining reads jamo in order the way a Korean keyboard does.

The syllable 한 and the phrase 한글 키보드

The syllable 한 is U+D55C. Subtracting 0xAC00 leaves 10,588, which divided by 588 is 18 with 4 left over. The initial is number 18 (ㅎ), the vowel is number 0 (ㅏ) and the final is number 4 (ㄴ). Putting them back gives 0xAC00 + (18 x 21 + 0) x 28 + 4 = 0xD55C.

The phrase 한글 키보드 splits into ㅎㅏㄴㄱㅡㄹ ㅋㅣㅂㅗㄷㅡ, which is 5 syllables. Joining ㅎㅏㄴㄱㅡㄹ gives 한글 again, and ㅂㅏㅂㅇㅣ gives 밥이, because the ㅇ followed by a vowel starts the next syllable.

Why Hangul has two forms

Korean syllables are written in blocks, but the blocks are built from letters. Unicode stores each common block as a single character, and also has the separate letters, called jamo. Computers sometimes need one form or the other. Sorting, searching, keyboard input and some fonts work on jamo, while ordinary text uses whole syllables.

There are two sets of jamo. Compatibility jamo are the letters you see on a keyboard, and they do not say whether a consonant is an initial or a final. Conjoining jamo have separate characters for each role, so a text engine can join them without guessing.

How joining decides

A consonant followed by a vowel starts a syllable. A consonant after a vowel is a final unless another vowel follows it, in which case it starts the next syllable. Two vowels such as ㅗ and ㅏ join into ㅘ, and two consonants such as ㄹ and ㄱ join into the final cluster ㄺ. For related tools see the Unicode Normalization Comparer, the Unicode Code Point Converter, the Keyboard Layout Fixer and the Letter Frequency Counter.

Assumptions and limits

  • Text is in Unicode, with precomposed syllables from U+AC00 to U+D7A3.
  • Joining follows common keyboard behavior and does not know which words are real.
  • The text shown is an example. Use your own.
  • Characters that are not Hangul are copied unchanged.

Formulas reviewed October 10, 2026. See the calculation methodology for how SumPanda rounds, tests and sources its formulas.

Frequently asked questions

What is the difference between the two jamo styles?

Compatibility jamo are what a keyboard types and look the same in every role. Conjoining jamo have separate codes for initial, vowel and final.

Why did a consonant join the wrong syllable?

The keyboard rule cannot tell a final from the next initial in every case. If the result is wrong, put a space between the syllables, which stops jamo from joining across it.

Can the tool split old Hangul letters?

No. It covers the 11,172 modern syllables from 가 to 힣 and the modern jamo.

Does it change spaces and punctuation?

No. Anything that is not Hangul is copied as it is, so the layout of your text stays the same.