Handle Unicode text, emoji, encoding, normalization, code points, and safe storage.
Lessons
Store Unicode text reliably in a database.
UTF-8 in Databases is easiest to learn by reading the example, changing it, and observing the result.
-- MySQL "utf8" is only 3 bytes and CANNOT store emoji.
-- Always use utf8mb4 (real 4-byte UTF-8).
CREATE TABLE messages (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
body TEXT NOT NULL
) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
-- Connection must also use utf8mb4:
SET NAMES utf8mb4;Practice the UTF-8 in Databases example in a small scratch file, then explain what changed and why.