Skip to the tool

Tool

Korean NFC, NFD, and jamo

Text that looks the same can use different code points. This page shows String.normalize output and counts syllables, combining jamo, and compatibility jamo.

Normalization runs in the browser. The paste is not sent to GearDel.

What the counts are

NFC and NFD are String.normalize in this browser. NFC composes Hangul jamo into syllables where Unicode says they compose. NFD splits syllables into jamo.

NFKC/NFKD also fold compatibility characters. Hangul compatibility jamo (U+3130–U+318F), often seen in older encodings or some IMEs, can change under NFKC.

Syllable count is precomposed Hangul syllables (U+AC00–U+D7A3). Combining jamo are U+1100–U+11FF, U+A960–U+A97F, and U+D7B0–U+D7FF. Compatibility jamo are counted separately.

Graphemes use Intl.Segmenter when the browser has it. A composed syllable is one grapheme; a visible syllable made of several jamo is still one grapheme if the segmenter treats it as one.

The code-point dump lists at most 80 characters so the page stays readable. The counts still cover the whole paste, up to 200,000 code points.

What this page does not do

  • It does not guess whether a file came from macOS. NFD is common there, but the numbers here are only this paste.
  • It does not implement a morphological analyzer or a Korean spell checker.
  • It does not encode EUC-KR. Use the character/byte page for that.

Normalize

Code points
0
Graphemes
0
Syllables
0
Combining jamo
0
Compatibility jamo
0
Already NFC / NFD
NFC · NFD
Show form

Questions

Why does “가” become three code points?

NFD splits U+AC00 into choseong, jungseong, and optionally jongseong jamo. NFC puts them back into one syllable when the sequence is canonical.

What is a compatibility jamo?

Characters in U+3130–U+318F, such as U+3131 HANGUL LETTER KIYEOK. They look like letters but are not the combining jamo used inside NFD syllables. NFKC may map them; this page shows both forms instead of hiding the difference.

Is this the same as Python unicodedata.normalize?

It is the same Unicode normalization forms (NFC/NFD/NFKC/NFKD). The dump and the jamo buckets are this page’s classification of the code points, not a Python API.

Related on GearDel

Pick a Korean dataset by task →

Korean LLM training rows →

Alpaca vs ShareGPT vs messages →

Eval sets vs training rows →

All browser tools →

Token count for Korean text →

Instruction JSONL checker and converter →

Korean characters and bytes →

CSV/TSV to instruction JSONL →

Split JSONL into train, val, and test →

Wrap a chat template and count tokens →

Drop duplicate JSONL lines →

Filter JSONL by token length →

Whether train JSONL overlaps eval prompts →

Mask Korean phone, RRN, and email →

JSONL field viewer and row sampler →

Korean encoding damage and mixed speech levels →

Open catalog excerpts, not the files →

Flatten JSONL to CSV or TSV →

Build a citation from catalog fields →