Unicode
Uniwersalne kodowanie dla wszystkich języków i emoji (UTF-8, UTF-16).
Unicode is a computing industry standard for consistent encoding of text from most of the world's writing systems. It defines code points (unique numbers) for over 149,000 characters.
Unicode Transformation Formats (UTF):
- UTF-8: Variable 1-4 bytes, ASCII-compatible, ~99% of web
- UTF-16: Variable 2-4 bytes, common in Windows/Java
- UTF-32: Fixed 4 bytes, simple but space-inefficient
Unicode supports all major world scripts, mathematical symbols, emojis (3,000+), and historical scripts. First 128 code points (U+0000 to U+007F) match ASCII.
graph LR
Center["Unicode"]:::main
Pre_ascii["ascii"]:::pre --> Center
click Pre_ascii "/terms/ascii"
Rel_ascii["ascii"]:::related -.-> Center
click Rel_ascii "/terms/ascii"
Rel_binary["binary"]:::related -.-> Center
click Rel_binary "/terms/binary"
Rel_string["string"]:::related -.-> Center
click Rel_string "/terms/string"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Wyjaśnij jak 5-latkowi
Wyobraź sobie ogromną książkę telefoniczną z unikalnym numerem dla każdej litery, symbolu i emoji w każdym języku świata. Unicode to ta książka telefoniczna—daje wszystkiemu numer, aby wszystkie komputery rozumiały wszystkie języki!
🤓 Expert Deep Dive
Formy normalizacji (NFC, NFD, NFKC, NFKD) obsługują równoważne reprezentacje. Klastry grafemów wymagają uwagi w operacjach na ciągach. ZWJ tworzy złożone emoji. BOM wskazuje kolejność bajtów.