Make two identical-looking strings compare equal
Mac filenames and pasted text sometimes fail matching even though they look identical — Unicode normalization is usually the fix.
Tools used in this guide
The job
A search fails, an import reports a duplicate that isn't, or a file 'disappears' — and the cause is invisible: the same accented letter can be stored as one code point (composed) or as letter + combining accent (decomposed). macOS filenames use the decomposed form; most systems assume composed.
Compare the forms
Paste the text and the tool shows all four forms — NFC, NFD, NFKC, NFKD — with code point counts. If two inputs look the same but differ, diff them as code points to see which string carries combining marks.
- NFC (composed) is what the web, databases, and most languages expect — normalize to NFC before comparing.
- NFKC/NFKD also fold compatibility characters: full-width digits become ASCII, ligatures split. That's sometimes what you want, but it changes the text, not just its encoding.
Worked example
A user list where 'José' was typed on Windows and 'José' came from a Mac export: both look identical, one is 4 code points, the other 5. NFC-normalize both sides of the join and the duplicate check works.
Where it stops
Normalization fixes encoding differences, not different spellings — 'café' and 'cafe' stay different. Compatibility forms (NFKC/NFKD) can merge distinct characters (² becomes 2). Up to 200,000 characters; normalization follows the browser's Unicode version.