Handle Unicode text, emoji, encoding, normalization, code points, and safe storage.
Lessons
Recognize the classic symptom of encoding mismatch.
Mojibake: Garbled Text is easiest to learn by reading the example, changing it, and observing the result.
// Mojibake happens when UTF-8 bytes are decoded as the wrong charset.
// "café" wrongly read as Latin-1 becomes "café".
// Cause: bytes written as UTF-8 but read as Latin-1 (or vice versa).
const utf8 = new TextEncoder().encode('café'); // correct bytes
const wrong = new TextDecoder('windows-1252').decode(utf8);
console.log(wrong); // "café" <- mojibake
// Fix: decode with the SAME encoding the bytes were written in.Practice the Mojibake: Garbled Text example in a small scratch file, then explain what changed and why.