UTF-8, UTF-16 en UTF-32 zijn drie op Unicode gebaseerder coderingsschema’s. De onderlinge verschillen zitten in het aantal bytes dat nodig is om een karakter op te slaan. De kleinste eenheid binnen een opgeslagen bestaand is respectievelijk 1 byte, een blok van 2 bytes en een blok van 4 bytes. De karaktergroottes variëren als volgt per karakterinterval:
| begin | eind | UTF-8 | UTF-16 | UTF-32 |
|---|---|---|---|---|
| 0 | 7F | 1 byte | 2 bytes | 4 bytes |
| 80 | 7FF | 2 bytes | ||
| 800 | FFFF | 3 bytes | ||
| 10000 | 10FFFF | 4 bytes | 4 bytes |
Daarnaast heeft UTF-8 als pluspunt dat het compatibel is met US-ASCII; doordat het slechts één byte per ASCII-karakter nodig heeft, is UTF-8 erg efficiënt met westerse teksten.
Omdat de kleinste eenheid bij UTF-16 en UTF-32 groter is dan één byte, kunnen hier twee verschillende byte-volgordes onderscheiden worden: big-endian en little-endian. Dit leidt tot UTF-16BE, UTF-16LE, UTF-32BE en UTF-32LE.
De karakters
De meeste Unicode-karakters zijn ingedeeld in zogenaamde blokken. De volgende blokken zijn beschikbaar:
Klik op een bloknaam om het codetabelfragment te bekijken.