CodeKitHub
Text-Tools

Byte-Zähler — Zeichenanzahl vs. Byte-Größe

Zuletzt aktualisiert:

Text eingeben oder einfügen und live sehen, wie viele Zeichen er enthält im Vergleich zu den Bytes, die er tatsächlich in UTF-8 und UTF-16 belegt — die beiden Zahlen weichen voneinander ab, sobald Nicht-ASCII-Zeichen (Umlaute/Akzente, CJK-Text, Emoji) im Spiel sind.

0
Zeichen
0
UTF-8-Bytes
0
UTF-16-Bytes

Was ist dieses Tool?

Bei reinem ASCII-Text (englische Buchstaben, Ziffern, einfache Satzzeichen) sind Zeichenanzahl und Byte-Anzahl dieselbe Zahl — jedes Zeichen belegt in UTF-8 genau ein Byte. Sobald der Text Umlaute/Akzentbuchstaben, chinesische/japanische/koreanische Zeichen, Kyrillisch, Arabisch, Emoji oder die meisten anderen Nicht-ASCII-Zeichen enthält, gilt das nicht mehr: Ein einzelnes Zeichen kann in UTF-8 2, 3 oder 4 Bytes belegen, und in UTF-16 2 oder 4 Bytes.

Das ist immer dann wichtig, wenn ein System eine Byte-Grenze statt einer Zeichengrenze hat — SMS-Nachrichten, Datenbankspaltengrößen, API-Payload-Limits und einige Social-Media-Plattformen messen alle in Bytes, nicht in Zeichen, sodass derselbe Text je nach verwendeter Sprache oder Symbolen ein Limit still überschreiten kann.

Warum sollte man es nutzen?

  • Ein Twitter/X-artiges Bio-Feld begrenzt dich nach Bytes, nicht nach Zeichen, und dein Name enthält ein Emoji — tippe ihn hier ein, um die tatsächlichen Byte-Kosten zu sehen, bevor das Formular ihn stillschweigend abschneidet.
  • Die Datenbankspalte deiner App ist intern als VARCHAR(255) in Bytes definiert, und ein japanischer oder arabischer Produkttitel, der "kurz aussieht", wird ständig abgelehnt — füge ihn hier ein, um zu sehen, warum er tatsächlich dreimal so viele Bytes braucht wie ein Titel in lateinischer Schrift.
  • Du schätzt ab, wie viele SMS-Segmente eine mehrsprachige Marketing-Nachricht braucht — da Mobilfunkanbieter nach Byte-Größe abrechnen und aufteilen, ist ein Blick auf die UTF-8/UTF-16-Byte-Anzahl hier besser als zu raten und eine überraschend hohe Rechnung zu bekommen.
  • Eine API liefert einen kryptischen "Payload zu groß"-Fehler bei einem JSON-Feld mit strikter Byte-Längenprüfung, und der String sah in deinem Editor völlig unauffällig aus — das zeigt dir genau, wie viele Bytes dieser String wirklich kostet.
  • Du vergleichst, warum derselbe Satz in einer Sprache mehr Speicherplatz braucht als in einer anderen — tippe jede Version ein und beobachte, wie die UTF-8-Byte-Anzahl bei chinesischem oder arabischem Text im Vergleich zur reinen ASCII-Version hochschnellt.
  • Du musst prüfen, ob ein Emoji in einem Benutzernamen von einer pingeligen Validierungsregel als ein oder zwei Zeichen gezählt wird — dieses Tool zählt es so, wie ein Mensch es sehen würde, sodass du erkennst, ob das andere System es falsch macht.

Anleitung

  1. Text in das Feld eingeben oder einfügen.
  2. Zeichenanzahl, UTF-8-Byte-Anzahl und UTF-16-Byte-Anzahl darunter ablesen — sie aktualisieren sich beim Tippen.

Beispiel

Eingabe

Hello, 世界! 🌍

Ausgabe

12 Zeichen, 19 UTF-8-Bytes, 26 UTF-16-Bytes

Der ASCII-Anteil („Hello, “ und „! “) belegt in UTF-8 1 Byte pro Zeichen. Jedes chinesische Zeichen belegt 3 Bytes, und das Emoji belegt 4 Bytes — deshalb sind die Byte-Anzahlen deutlich höher als die Zeichenanzahl.

Häufige Anwendungsfälle

  • Prüfen, ob eine mehrsprachige Produktbeschreibung in eine Datenbankspalte passt, die durch Byte-Länge statt Zeichenanzahl definiert ist.
  • Abschätzen der SMS-Segmentnutzung, da SMS nach Byte-Größe abgerechnet und aufgeteilt werden und nicht-lateinischer Text ein anderes Limit pro Segment hat.
  • Überprüfen, ob ein API-Payload oder Formularfeld vor dem Absenden unter einem byte-basierten Größenlimit bleibt.
  • Verstehen, warum eine „kurz aussehende“ Zeichenkette von einem System mit byte-basierter Längenprüfung abgelehnt wird.

UTF-8-Byte-Größe nach Zeichentyp

Die folgende Tabelle zeigt die typischen UTF-8-Byte-Kosten pro Zeichenkategorie — nützlich, um abzuschätzen, wie viel ein mehrsprachiger Text tatsächlich wiegt, bevor du ihn komplett einfügst.

ZeichentypBeispielUTF-8-BytesUTF-16-Bytes
ASCII-Buchstabe/ZifferA, 712
Akzentuiertes Latein (é, ñ, ü)é22
Kyrillisch / Griechisch / Hebräisch / Arabischд, α, א22
CJK (Chinesisch, Japanisch, Koreanisch)32
Die meisten Emoji (außerhalb der BMP)🌍44

Häufig gestellte Fragen

Warum stimmen Zeichenanzahl und Byte-Anzahl nicht überein?

Unicode-Text wird als Bytes gespeichert, und wie viele Bytes jedes Zeichen benötigt, hängt von der Kodierung und dem Zeichen selbst ab. In UTF-8 belegen ASCII-Zeichen 1 Byte, die meisten Akzentbuchstaben sowie Kyrillisch/Griechisch/Hebräisch/Arabisch 2 Bytes, die meisten CJK-Zeichen 3 Bytes, und Emoji typischerweise 4 Bytes. Die Zeichenanzahl zählt einfach Symbole, unabhängig davon, wie sie gespeichert werden.

Welche Byte-Anzahl sollte ich für ein byte-begrenztes Feld verwenden?

Verwende die Kodierung, die das System tatsächlich zum Speichern oder Übertragen des Textes nutzt — die meisten modernen Web-APIs, Datenbanken und Dateien verwenden UTF-8, daher ist die UTF-8-Byte-Anzahl meist die relevante. Manche älteren Systeme (wie interne Windows/Java-String-Verarbeitung) verwenden UTF-16.

Zählt das Tool Emoji korrekt?

Ja. Viele Emoji werden intern als Paar von UTF-16-„Surrogat“-Code-Einheiten gespeichert, die naive Zählmethoden als 2 Zeichen zählen. Dieses Tool zählt Unicode-Codepunkte korrekt, sodass ein Emoji als 1 Zeichen gezählt wird — passend dazu, wie viele Zeichen eine Person tatsächlich sieht.

Ist das dasselbe wie das Wortzähler-Tool?

Nein — der Wortzähler konzentriert sich auf Wort- und Satzanzahl fürs Schreiben. Dieses Tool geht speziell um Byte-Größe im Vergleich zur Zeichenanzahl, was für technische Limits relevant ist, nicht für Wortanzahl-Anforderungen.

Wird mein Text irgendwohin hochgeladen?

Nein. Das Zählen erfolgt lokal in deinem Browser mit dem integrierten Text-Encoder von JavaScript; es wird nichts an einen Server gesendet.

Warum belegt dasselbe Zeichen in UTF-8 und UTF-16 unterschiedlich viele Bytes?

Die beiden Kodierungen verwenden völlig unterschiedliche Regeln, um Codepunkte auf Bytes abzubilden. UTF-8 nutzt je nach Zeichen 1 bis 4 Bytes, optimiert darauf, dass ASCII bei 1 Byte bleibt. UTF-16 nutzt für die meisten Zeichen 2 Bytes und nur für Zeichen außerhalb der Basic Multilingual Plane (wie die meisten Emoji) 4 Bytes — ein chinesisches Zeichen belegt daher in UTF-8 3 Bytes, in UTF-16 aber nur 2, während ein Emoji in beiden 4 Bytes belegt.

Wird ein Hautton- oder Familien-Emoji (aus mehreren verbundenen Zeichen) korrekt gezählt?

Das Tool zählt Unicode-Codepunkte, daher wird ein zusammengesetztes Emoji aus mehreren, durch einen Zero-Width-Joiner verbundenen Codepunkten (wie ein Familien-Emoji) als mehrere Zeichen gezählt, nicht als eins — passend dazu, wie der Text tatsächlich kodiert ist, auch wenn er als ein einzelnes Symbol dargestellt wird.

Was ist der Unterschied zwischen UTF-8-Byte-Anzahl und Zeichenanzahl bei reinem deutschem Text ohne Umlaute?

Bei Text, der nur ASCII-Buchstaben, Ziffern, Leerzeichen und einfache Satzzeichen verwendet, sind sie identisch — jedes Zeichen ist in UTF-8 genau 1 Byte. Die Lücke entsteht erst, sobald Umlaute (ä, ö, ü, ß), Symbole oder nicht-lateinische Schriften hinzukommen.

Kann ich damit die Zeichengrenzen von Twitter/X oder SMS exakt prüfen?

Dieses Tool liefert die reine Zeichen- und Byte-Anzahl, die Grundlage dieser Limits — Plattformen wenden aber manchmal eigene Gewichtungsregeln an (manche zählen z. B. bestimmte Emoji oder URLs unabhängig von der tatsächlichen Länge als feste Zeichenanzahl) — prüfe für Grenzfälle die spezifischen Regeln der Plattform und nutze dieses Tool, um die zugrunde liegenden Byte-Kosten zu verstehen.

Verwandte Tools