Korean Syllable Block Builder

Compose Hangul syllable blocks from individual choseong, jungseong, and jongseong

Pick an initial consonant, a vowel, and an optional final consonant and the tool composes the exact precomposed Hangul syllable block using the Unicode composition formula. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

How is a Hangul syllable block built?

A Korean syllable block has up to three parts: a leading consonant (choseong), a medial vowel (jungseong), and an optional final consonant (jongseong). They are arranged into a single square block, not written linearly, which is what gives Hangul its distinctive look.

Korean is written in Hangul, where letters are not strung out in a line but packed into square syllable blocks. Each block has up to three parts: a leading consonant (choseong), a medial vowel (jungseong), and an optional final consonant (jongseong). This builder lets you pick each part and instantly composes the exact precomposed Unicode syllable, showing its code point — a clean way to see how Hangul’s elegant composition system works.

How it works

Unicode stores all 11,172 modern Hangul syllables in one contiguous, ordered range beginning at U+AC00 (가). Any block is computed with a single formula:

code = 0xAC00 + (initial × 21 + medial) × 28 + final

where:

  • initial is the choseong index, 0–18 (19 consonants).
  • medial is the jungseong index, 0–20 (21 vowels).
  • final is the jongseong index, 0–27 — index 0 means no final consonant, and 1–27 are the final consonants.

Multiplying the slot counts gives 19 × 21 × 28 = 11,172 syllables, exactly the size of the Unicode block. The arithmetic means every selection maps to one unambiguous character.

The three components in detail

Choseong (초성) — initial consonant. Every Hangul syllable begins with a consonant. When a syllable starts with a vowel sound, the placeholder consonant ㅇ (ieung) fills the initial slot — so 아 (a) is actually ㅇ + ㅏ. There are 19 possible initials.

Jungseong (중성) — medial vowel. The vowel sits to the right of or below the initial consonant, depending on whether it is a horizontal or vertical vowel. There are 21 possible medials, including compound vowels like ㅘ (wa), ㅝ (wo), and ㅢ (ɰi).

Jongseong (종성) — optional final consonant. Some syllables end with a consonant (받침, batchim). There are 27 possible finals plus the empty slot. Not all consonants appear in the same form as finals — for example, ㄺ (lk cluster) is a valid final. The final consonant affects pronunciation of the following syllable through sandhi.

Worked examples

Target syllableChoseongJungseongJongseongCode point
가 (ga)ㄱ (0)ㅏ (0)none (0)U+AC00
나 (na)ㄴ (2)ㅏ (0)none (0)U+B098
한 (han)ㅎ (18)ㅏ (0)ㄴ (4)U+D55C
글 (geul)ㄱ (0)ㅡ (18)ㄹ (8)U+AE00
봄 (bom, spring)ㅂ (6)ㅗ (8)ㅁ (16)U+BD04

To verify: 한 = 0xAC00 + (18 × 21 + 0) × 28 + 4 = 0xAC00 + 18 × 588 + 4 = 0xAC00 + 10584 + 4 = 0xAC00 + 10588 = 0xD55C.

Why the precomposed block matters for developers

Unicode contains both precomposed Hangul syllable blocks (U+AC00–U+D7A3) and standalone jamo characters (U+3131–U+318E and the compatibility jamo range). Text typed on a Korean keyboard always produces precomposed blocks. When comparing, searching, or indexing Korean text in software, work with the precomposed form — loose jamo sequences look different even when they represent the same syllable. The builder always outputs the precomposed block, not the loose jamo, matching what the IME produces.