Wie Wörter und Zeichen gezählt werden
Fügen Sie denselben Text in zwei Apps ein, erhalten Sie womöglich zwei verschiedene Zahlen. Keine davon ist zwangsläufig falsch: Sie zählen unterschiedliche Dinge. Diese Anleitung erklärt die gängigen Einheiten und warum die Zahlen abweichen.
Vier Arten, Zeichen zu zählen
Computer speichern Text als Unicode, und ein „Zeichen“ lässt sich auf mehreren Ebenen messen:
- Graphem-Cluster sind das, was ein Leser als ein Zeichen wahrnimmt, etwa „é“, „한“ oder „👍🏽“.
- Codepunkte sind die einzelnen Unicode-Werte. Ein sichtbares Zeichen kann aus mehreren Codepunkten bestehen.
- UTF-16-Codeeinheiten zählt
lengthin JavaScript, ebenso wie mehrere andere Programmiersprachen. Zeichen außerhalb der Basic Multilingual Plane, darunter die meisten Emojis, belegen zwei Einheiten. - UTF-8-Bytes sind das, was eine Datei oder eine Datenbankspalte speichert. ASCII-Buchstaben belegen ein Byte, lateinische Buchstaben mit Akzent meist zwei, koreanische, chinesische und japanische Schriftzeichen meist drei und Emojis vier oder mehr.
| Text | Grapheme | Codepunkte | UTF-16-Einheiten | UTF-8-Bytes |
|---|---|---|---|---|
| a | 1 | 1 | 1 | 1 |
| é (ein einzelner Codepunkt) | 1 | 1 | 1 | 2 |
| é (e + kombinierender Akzent) | 1 | 2 | 2 | 3 |
| 한 (koreanische Silbe) | 1 | 1 | 1 | 3 |
| 👍 | 1 | 1 | 2 | 4 |
| 👍🏽 (mit Hautfarbe) | 1 | 2 | 4 | 8 |
| 👨👩👧 (Familien-Emoji) | 1 | 5 | 8 | 18 |
Kombinierende Akzente und koreanischer Text
Manche Zeichen lassen sich auf mehr als eine Weise speichern. „é“ kann ein einzelner, vorkombinierter Codepunkt sein oder ein einfaches „e“, gefolgt von einem kombinierenden Akzent. Beide sehen identisch aus, doch die zweite Form hat einen Codepunkt und ein Byte mehr. Text, der aus manchen Systemen kopiert wird, etwa Dateinamen auf bestimmten Betriebssystemen, kann die zerlegte Form verwenden.
Im Koreanischen tritt dasselbe auf. Eine Silbe wie „한“ wird meist als ein Codepunkt gespeichert, kann aber auch als einzelne Jamo (ㅎ, ㅏ, ㄴ) geschrieben werden, die auf dem Bildschirm zusammengesetzt werden. Ein Zähler, der Grapheme zählt, zeigt in beiden Fällen 1, eine Zählung der Codepunkte dagegen 1 oder 3. Die Unicode-Normalisierung (NFC oder NFD) wandelt zwischen den beiden Formen um.
Wörter in verschiedenen Sprachen zählen
Im Englischen ergibt die Trennung an Leerzeichen eine brauchbare Wortzahl, auch wenn Wörter mit Bindestrich, Kurzformen, Zahlen und URLs von verschiedenen Tools unterschiedlich gezählt werden können.
Chinesisch, Japanisch und Thailändisch werden meist ohne Leerzeichen zwischen den Wörtern geschrieben; eine Trennung an Leerzeichen würde also einen ganzen Satz als ein Wort zählen. Bessere Zähler verwenden eine Wortsegmentierung, die auf Wörterbüchern und Regeln beruht. Der LeedyBox-Zähler verwendet Intl.Segmenter des Browsers, das für viele Sprachen Wortgrenzen erkennt. Die Segmentierung in diesen Sprachen ist Konventionssache, daher können die Ergebnisse von anderen Tools oder einer Zählung durch Menschen abweichen. Manche Verlage in diesen Sprachen zählen deshalb Zeichen statt Wörter.
Warum Apps und Websites unterschiedlich zählen
Eine Grenze wie „maximal 280 Zeichen“ oder „VARCHAR(255)“ kann je nach System in Graphemen, Codepunkten, UTF-16-Einheiten oder Bytes gemessen werden. Manche Dienste zählen einen Link außerdem mit fester Länge oder gewichten bestimmte Schriften stärker. Wenn Sie eine Grenze einhalten müssen, finden Sie heraus, welche Einheit das Zielsystem verwendet, und vergleichen Sie mit dieser Zahl. Der LeedyBox-Zähler zeigt Grapheme, UTF-16-Einheiten und UTF-8-Bytes nebeneinander an und enthält eine Längenprüfung, sodass Sie sehen, wie nah Sie in der maßgeblichen Einheit an der Grenze sind.
Zeilen, Absätze und Zeilenumbrüche
Die Zeilenzahl hängt davon ab, wie Zeilenumbrüche gespeichert werden. Windows verwendet in der Regel zwei Zeichen (CR LF), Linux und macOS eines (LF). Ein Tool, das rohe Zeichen zählt, kann einen Windows-Zeilenumbruch als zwei zählen. Ein abschließender Zeilenumbruch am Textende kann als zusätzliche leere Zeile zählen oder auch nicht. Absätze werden meist als Blöcke gezählt, die durch eine oder mehrere Leerzeilen getrennt sind; ein einzelner Zeilenumbruch innerhalb eines Absatzes beginnt also keinen neuen.
Geschätzte Lesezeit
Die Lesezeit wird berechnet, indem die Wortzahl durch eine angenommene Lesegeschwindigkeit geteilt wird. Die tatsächliche Geschwindigkeit hängt von der lesenden Person, der Sprache und davon ab, wie fachlich der Text ist, und die Wortzahl selbst hängt von der Segmentierung ab. Betrachten Sie die Schätzung als grobe Orientierung für die Planung, nicht als Messung.
Häufige Fragen
Warum zählt ein Emoji in manchen Apps als 2 Zeichen?
Diese Apps zählen UTF-16-Codeeinheiten. Die meisten Emojis werden als zwei Einheiten gespeichert, Emojis mit Hautfarbe oder kombinierten Personen belegen mehr.
Welche Zählung sollte ich für die Längenbegrenzung einer Datenbankspalte verwenden?
Sehen Sie in der Dokumentation der Datenbank nach. Manche Grenzen gelten in Zeichen, andere in Bytes, daher ist oft die Zahl der UTF-8-Bytes der richtige Vergleichswert.
Sendet der Zähler meinen Text irgendwohin?
Der LeedyBox-Wort- & Zeichenzähler läuft in Ihrem Browser, daher wird der eingefügte Text auf Ihrem Gerät gezählt.