๐Ÿ”„Unicode NFC and NFD Normalizer

Normalize unicode text (NFC/NFD)

NFC and NFD look identical on screen. Use the code point list below to see what actually changed.

How to use the Unicode normalizer

Unicode often allows the same visible character to be stored in more than one way. An accented letter can be a single precomposed character or a base letter followed by a combining mark, and a Hangul syllable can be one composed character or three separate jamo. The two spellings look identical on screen but compare as different strings, which quietly breaks search, sorting and deduplication. Normalization rewrites text so one spelling is used consistently.

NFC composes characters together and NFD splits them apart. This is why a file created on macOS can show its name scattered into separate letters on Windows or Linux: the macOS file system stores names in NFD. Running the text through NFC puts it back together. It is worth knowing that the jamo produced by NFD are conjoining jamo in the U+1100 block, which are different characters from the standalone compatibility jamo people type directly. The code point list under the result makes that visible.

NFKC and NFKD go further and fold compatibility characters as well, turning circled digits, full-width letters and ligatures into their plain equivalents. That is useful for matching search terms, but it discards formatting information permanently, so it is not a good choice for archival data.

Frequently Asked Questions

The result looks exactly like my input.

NFC and NFD render identically and differ only in how the text is stored. The code point list under the result shows how many characters were used and which numbers they carry.

A file name created on macOS shows its letters scattered apart.

The macOS file system stores names in NFD. Paste the name here and press NFC to put the characters back together.

What is the difference between NFC and NFKC?

NFC only unifies alternative spellings of the same character, while NFKC also folds compatibility characters such as circled digits and full-width letters into plain ones. That loses formatting, so keep it for search keys.