ArabicFix

THE TEXT STUDIO

Arabic Unicode normalization: NFC & NFKC

Compare NFC, NFD, NFKC and NFKD against your original. Encoding transformations, not linguistic correction.

Processed in your browser

Up to 20,000 units. NFKC/NFKD can change meaningful distinctions: ﻻ becomes لا and ① becomes 1. Every form is recalculated from the preserved original. Normalization uses your browser’s Unicode engine, which can differ in version from the explorer. No reversal or spelling correction.

Unicode UAX #15 · Method specification; actual behavior comes from your browser engine.

Save & restore workspace

Explicit download/import of text and settings; no autosave or sync. The file contains your text; store it appropriately. History and voices are not saved. Up to one million text units and a 4 MB file.

From your screen to a finished page

Export the current result as a carefully paginated PDF, or keep selectable text with an embedded font.

Up to 20,000 units. The visual PDF uses approximately 150 dpi browser-shaped pages; its text is not searchable or selectable. HTML and TXT retain copyable text. Cleaner proof font and layout settings carry into export. When printing HTML, browser headers and footers are controlled by your browser.

How to normalize Arabic Unicode with NFC and NFKC

The same letter can be stored in more than one way. أ is a single character in most text, but some software produces it as alef followed by a combining hamza. A shadda and a fatha can be typed in either order. Text copied from a PDF may hold لا as one character instead of lam plus alef. It all looks identical, yet search, comparisons and databases see different text.

Unicode normalization is a set of official rules that rewrite text into one agreed form. This tool shows all four forms and lists the code points before and after (a code point is a character's number in Unicode), so you can see what actually changed. It is useful for developers, for anyone preparing data for search or indexing, and for anyone trying to work out why two identical-looking names do not match.

How to use it

  1. Paste your text into Preserved original, or click Example: hamza & lam-alef.
  2. Under Normalization form, choose NFC · canonical composition, NFD · canonical decomposition, NFKC · compatibility composition or NFKD · compatibility decomposition.
  3. Read the status line. Matches your original. No change. means your text is already in that form; otherwise the tool shows the number of code points before and after.
  4. Compare the code points below the two boxes: the first line is your original, then the form's name, then the result.
  5. Try another form if you like. Every form is calculated from your untouched original, so changes never pile up.
  6. Copy the Normalization preview or download it as a .txt file.

Worked examples from the tool

Example from the tool · NormalizationAlef plus a combining hamza becomes a single أ
Original
أحمد
Result
أحمد
Code points before
U+0627 U+0654 U+062D U+0645 U+062F
Code points after
U+0623 U+062D U+0645 U+062F

Settings: Normalization form · NFC · canonical composition

Example from the tool · NormalizationShadda typed before fatha; NFC reorders them without changing the look
Original
مُحَمَّد
Result
مُحَمَّد
Code points before
U+0645 U+064F U+062D U+064E U+0645 U+0651 U+064E U+062F
Code points after
U+0645 U+064F U+062D U+064E U+0645 U+064E U+0651 U+062F

Settings: Normalization form · NFC · canonical composition

Example from the tool · NormalizationA line from a PDF with presentation forms and a circled number
Original
ﺍﻟﺒﻨﺪ ③ ﻻ ﻳﻨﻄﺒﻖ
Result
البند 3 لا ينطبق
Code points before
U+FE8D U+FEDF U+FE92 U+FEE8 U+FEAA U+0020 U+2462 U+0020 U+FEFB U+0020 U+FEF3 U+FEE8 U+FEC4 U+FE92 U+FED6
Code points after
U+0627 U+0644 U+0628 U+0646 U+062F U+0020 U+0033 U+0020 U+0644 U+0627 U+0020 U+064A U+0646 U+0637 U+0628 U+0642

Settings: Normalization form · NFKC · compatibility composition

Which form should you choose?

  • NFC composes what can be composed, so alef plus combining hamza becomes a single أ, and stacked marks on a letter are put in a fixed order. The text looks exactly the same. Choose it when you have no special reason to pick another.
  • NFD decomposes, so أ becomes alef plus hamza. It helps developers who want to process marks separately, and again the text looks the same.
  • NFKC does what NFC does and adds compatibility folding: characters kept only for compatibility with older systems are replaced by their ordinary equivalents. Presentation forms copied from a PDF become normal letters, ﻻ becomes لا and ① becomes 1. It suits a copy prepared for search.
  • NFKD is compatibility folding plus decomposition.

Compatibility folding can change more than you expect. The sign ﷺ, for instance, becomes four words: صلى الله عليه وسلم. Do not use NFKC or NFKD on text you will publish, and always keep the original.

What normalization does not do

  • It does not merge أ with ا, ى with ي, or ة with ه, because those are different letters in Unicode. To fold them for search, use Normalize letters for search in the Cleaner, as the search normalization guide explains.
  • It does not turn Arabic-Indic digits into 0–9, not even with NFKC.
  • It does not remove diacritics or tatweel.
  • It does not fix reversed words. If words from a PDF start from their last letter, use Reversed Arabic and see fixing Arabic copied from a PDF.

Limits

  • Up to 20,000 text units. The code point list shows the first 160 code points of the original and of the result; the preview and the copy cover the whole text.
  • Results come from your browser's Unicode engine and can differ slightly between browsers and versions for recently added characters.
  • NFKC and NFKD can erase distinctions that matter, such as circled numbers or signs that pack a whole phrase into one character.
  • Normalization is an encoding rule, not spelling or grammar correction.
  • The tool never reverses text or reorders words.

Frequently asked questions

What is the difference between NFC and NFKC, in short?

NFC unifies how characters are stored without changing how they look or what they mean. NFKC also replaces compatibility characters, such as presentation forms and circled numbers, with their ordinary equivalents, so the text can look different.

What does “Matches your original. No change.” mean?

It means your text is already stored in that form, which is common for unvowelled text. Try NFD to see decomposition, or NFKC if the text was copied from a PDF.

Does normalization merge hamza forms, or ى and ي?

No. أ and ا are different letters in Unicode, and so are ى and ي. Normalization only unifies different ways of storing the same letter. To merge those letters, use the Normalize letters for search options in the Cleaner.

Why did the order of shadda and fatha change in the code points?

Unicode gives every mark a number called its combining class and sorts stacked marks by it during normalization. Fatha is 30 and shadda 33, so fatha goes first. Nothing changes on screen, but two copies typed in different orders become identical.

Should I run all my text through NFKC before saving it?

No. Store the original, or NFC if you need consistent encoding. Use NFKC for a helper copy used in search or matching, or to repair text copied from a PDF after you have checked it.

Reading comfort
About ArabicFix

ArabicFix is a workspace for Arabic text: clean, write, convert and compare. Choose a tool, paste your text, then review the result before copying or downloading. Transformations are explicit and optional. Your exported text contains no branding or watermark.

Processing happens in your browser. Text and files are not uploaded, and drafts are not automatically saved. Download a workspace file to restore your work later; earlier workspace files remain compatible. These tools do not claim contextual proofreading or automatic tashkeel. Speech requires a browser-provided local Arabic voice.