Zeichen vs. Bytes: Wie UTF-8 Text in Bytes verwandelt

Ein Text hat eine bestimmte Laenge, das scheint einfach. Doch die Frage Wie gross ist dieser Text? hat zwei verschiedene Antworten, je nachdem ob man Zeichen oder Bytes zaehlt. Diese Unterscheidung ist kein akademisches Detail: Sie entscheidet darueber, ob ein Datenbankfeld ueberlaeuft, ob eine SMS in einem oder zwei Teilen verschickt wird und wie gross eine Datei wirklich ist. Dieser Artikel erklaert, wie aus Zeichen Bytes werden und warum UTF-8 dabei die zentrale Rolle spielt.

Zeichen, Codepoints und Bytes

Drei Begriffe muss man auseinanderhalten:

Die Kodierung ist die Vorschrift, wie ein Codepoint in Bytes uebersetzt wird. Heute ist UTF-8 der unangefochtene Standard im Web. Sie ist clever konstruiert, weil sie Speicher spart, wo es geht, und nur dort mehr Platz verbraucht, wo es noetig ist.

Wie UTF-8 Bytes verteilt

UTF-8 ist eine Kodierung mit variabler Laenge. Je nachdem, wie hoch der Codepoint eines Zeichens liegt, belegt es ein bis vier Bytes:

Das Wort Stra mit dem scharfen S ist also kuerzer in Zeichen als in Bytes, weil das scharfe S zwei Bytes belegt. Ein Daumen-hoch-Emoji ist ein einzelnes Zeichen, kostet aber vier Bytes. Genau diese Umrechnung uebernimmt der Zeichen Bytes Rechner: Du gibst einen Text ein und siehst sofort, wie viele Zeichen er hat und wie viele Bytes er in UTF-8 belegt.

Warum das in der Praxis zaehlt

Der Unterschied zwischen Zeichen und Bytes ist nicht nur Theorie, sondern hat handfeste Folgen:

Wer mit internationalen Texten arbeitet, sollte daher immer wissen, ob ein Limit in Zeichen oder Bytes gilt. Im Zweifel rechnet man mit dem schlechtesten Fall, also mit mehreren Bytes pro Zeichen.

Das Byte Order Mark und andere Stolperfallen

Eine UTF-8-Datei kann optional mit einem unsichtbaren Markierungszeichen am Anfang beginnen, dem Byte Order Mark (BOM). Es belegt drei Bytes und ist im Editor nicht sichtbar, kann aber Probleme verursachen, etwa wenn ein Server es versehentlich mit ausgibt und das Layout zerschiesst. Fuer Web-Dateien gilt: UTF-8 ohne BOM ist die empfohlene Variante.

Eine weitere Feinheit betrifft kombinierte Zeichen. Manche Buchstaben mit Akzent lassen sich auf zwei Arten darstellen: als ein einzelner vorgefertigter Codepoint oder als Grundbuchstabe plus separatem Akzentzeichen. Optisch sind beide identisch, in Zeichen- und Byte-Zahl unterscheiden sie sich aber. Das erklaert, warum derselbe sichtbare Text manchmal unterschiedlich gemessen wird.

Verwandte Werkzeuge

Wenn du die Byte-Groesse eines ganzen JSON-Dokuments brauchst, hilft der JSON Groesse Rechner, der zusaetzlich die minifizierte Groesse anzeigt. Fuer die reine Text- und Lesbarkeitsanalyse, etwa Wort- und Satzzahl, ist der Lesbarkeitsrechner das passende Werkzeug. Eine vollstaendige Uebersicht findest du in den Webtools.

Haeufige Fragen

Wie viele Bytes hat ein deutsches Wort durchschnittlich?

Das haengt von der Zahl der Umlaute ab. Ein Wort ohne Umlaute belegt ein Byte pro Buchstabe, jeder Umlaut und jedes scharfe S fuegt ein zusaetzliches Byte hinzu. Deutscher Text ist deshalb in Bytes typischerweise einige Prozent groesser als seine reine Zeichenzahl.

Warum nutzt das Web ueberhaupt UTF-8 und nicht eine feste Breite?

Eine feste Breite wie bei aelteren Kodierungen wuerde fuer jedes Zeichen gleich viel Platz reservieren, auch fuer einfache ASCII-Buchstaben. Da der allergroesste Teil des Webtextes aus ASCII-naher Schrift besteht, spart UTF-8 mit seiner variablen Laenge enorm viel Speicher und bleibt zugleich vollstaendig kompatibel mit reinem ASCII.

Zaehlt ein Emoji als ein Zeichen?

Optisch ja, technisch nicht immer. Viele Emojis sind ein einzelner Codepoint und damit ein Zeichen, das vier Bytes belegt. Komplexere Emojis, etwa mit Hautton oder als Kombination mehrerer Symbole, bestehen jedoch aus mehreren Codepoints und koennen so leicht acht oder mehr Bytes belegen.