Als immer mehr Sprachen auf Computern verwendet wurden, brauchte die Welt eine Möglichkeit, mehr Textzeichen darzustellen, als ASCII erlaubte (1 Byte erlaubte nur 256 Zeichen).
utf-8 wurde mit einer variablen Byte-Länge von 1-4 Bytes eingeführt, was die Bandbreite möglicher Zeichen stark vergrößerte.
Ein Vorteil von Zeichen variabler Größe ist, dass Text keine unnötigen Bytes für sehr häufige ASCII-Zeichen enthält (diese benötigen weiterhin nur 1 Byte in utf-8).
Ein Nachteil von Zeichen variabler Größe ist, dass das Auffinden eines Zeichens nicht mehr schnell (in konstanter Zeit O(1)) über eine einfache Indizierung möglich ist (z. B. my_text[3], um das 4. Zeichen zu erhalten). Es ist möglich, dass die vorangehenden Zeichen unterschiedliche Breiten haben, wodurch sich verändert, wo das 4. Zeichen tatsächlich in der Byte-Sequenz beginnt.
Stattdessen müssen wir durch eine utf-8-Byte-Sequenz iterieren, um zu verstehen, wo die Unicode-Zeichen tatsächlich beginnen (in linearer Zeit O(n)).
Ferris: "Ich bin vor allem einfach froh, utf-8 zu haben, um die Emojis meiner Unterwasserfreunde darzustellen."
🐠🐙🐟🐬🐋
