EMZETT.
Login

UTF-8 und Zeichenkodierung

Kurz: Eine Zeichenkodierung legt fest, wie Buchstaben als Bytes gespeichert werden. UTF-8 ist die heute übliche Kodierung und kann alle Unicode-Zeichen darstellen.

Genauer: Computer speichern nur Zahlen. Unicode gibt jedem Zeichen eine Nummer (Codepoint), UTF-8 beschreibt, wie diese Nummer in 1 bis 4 Bytes verpackt wird. ASCII-Zeichen brauchen nur 1 Byte, Umlaute 2, viele Emojis 4.

Im Detail

  • Rückwärtskompatibel: Reiner ASCII-Text ist automatisch gültiges UTF-8.
  • Mojibake: Falsche Dekodierung führt zu Zeichensalat wie „ä” statt „ä”.
  • Länge: "ä".length zählt je nach Sprache Zeichen, Bytes oder Code-Einheiten. Bei Emojis weichen diese Zahlen voneinander ab.
  • Im Web: <meta charset="utf-8"> und der HTTP-Header Content-Type: text/html; charset=utf-8 setzen.
  • Datenbanken: Spalten mit utf8mb4 (MySQL) speichern auch Emojis vollständig.
  • BOM: Ein unsichtbares Byte-Order-Mark am Dateianfang ist bei UTF-8 unnötig und stört manchmal.

Siehe auch: Endianness (Byte-Reihenfolge)