Handle Unicode text, emoji, encoding, normalization, code points, and safe storage.
Lessons
Strip dangerous and invisible characters.
Sanitizing Unicode Input is easiest to learn by reading the example, changing it, and observing the result.
// "аpple" (Cyrillic а, U+0430) looks like "apple" (Latin a, U+0061)
const fake = 'аpple';
const real = 'apple';
console.log(fake === real); // false - homograph attack
// Defenses: normalize, restrict scripts, and strip invisible chars
const cleaned = fake
.normalize('NFKC')
.replace(/[\u200B-\u200D\uFEFF]/g, ''); // remove zero-width charsPractice the Sanitizing Unicode Input example in a small scratch file, then explain what changed and why.