Fünf Zahlen auf einen Blick
Sobald du etwas in das Feld „Text“ einfügst oder dort schreibst, stehen darunter fünf Zahlen. Die beiden großen sind „Zeichen (mit Leerzeichen)“ und „Zeichen (ohne Leerzeichen)“, daneben folgen „Wörter“, „Zeilen“ und „Bytes (UTF-8)“. Für ein Zeichenlimit brauchst du in der Regel eine der beiden großen Zahlen. Geht es um Speicherplatz oder um ein Limit in Bytes, zählt „Bytes (UTF-8)“. Bei sehr langen Texten können die Zahlen dem Tippen einen Moment hinterherhinken. „Leeren“ über dem Eingabefeld löscht den Text in einem Zug.
Ein Beispiel durchgerechnet
Mit Hello, world! in der ersten Zeile und It is a well-known café 😀 in der zweiten kommt Folgendes heraus:
| Wert | Ergebnis | Rechnung |
|---|---|---|
| Zeichen (mit Leerzeichen) | 39 | 13 in der ersten Zeile + 1 Zeilenumbruch + 25 in der zweiten Zeile |
| Zeichen (ohne Leerzeichen) | 32 | 39 minus 6 Leerzeichen und 1 Zeilenumbruch |
| Wörter | 8 | Hello, / world! / It / is / a / well-known / café / 😀 |
| Zeilen | 2 | 1 Zeilenumbruch plus 1 |
| Bytes (UTF-8) | 43 B | 37 Zeichen zu je 1 Byte + 2 Bytes für é + 4 Bytes für 😀 |
Komma und Ausrufezeichen hängen am Wort davor und werden mit ihm gezählt. Das Emoji steht für sich allein und ist deshalb 1 Wort.
Was als ein Zeichen zählt
Ein Zeichen ist das, was auf dem Bildschirm wie ein einzelnes Zeichen aussieht. Der Unicode-Standard (UAX #29) nennt die Einheit, die dem von Menschen wahrgenommenen Zeichen entspricht, Graphem-Cluster (grapheme cluster). Auch was intern aus mehreren Codes zusammengesetzt ist, zählt also als 1, solange du es als ein Zeichen siehst.
- Das Familien-Emoji (👨👩👧) besteht aus drei Personen-Emojis, die zwei unsichtbare Verbindungszeichen zusammenhalten, und zählt als 1 Zeichen.
- Ein Emoji mit Hautton (👍🏽) ist ein Emoji plus Farbangabe und zählt als 1 Zeichen.
- Ein é zählt als 1 Zeichen, ob es nun als ein Zeichen gespeichert ist oder als e mit getrenntem Akzentzeichen.
Leerzeichen, Wörter und Zeilen
- Zeichen (ohne Leerzeichen): Abgezogen werden Leerzeichen, Tabs, Zeilenumbrüche, das ideografische Leerzeichen (U+3000) und das geschützte Leerzeichen (U+00A0). Zwei Leerzeichen hintereinander fallen beide weg.
- Wörter: Jeder Block, der durch Leerraum von seinen Nachbarn getrennt ist, ist 1 Wort. Das gilt für
well-knownmit Bindestrich genauso wie fürdon'tmit Apostroph. Bedeutung und Grammatik spielen dabei keine Rolle: In jeder Sprache ist die Wortzahl einfach die Zahl der durch Leerraum getrennten Blöcke. - Zeilen: die Zahl der Zeilenumbrüche plus 1. Leerzeilen zwischen Absätzen zählen mit. Ist das Feld leer, steht dort 0.
- Text nur aus Leerzeichen: Ein einzelnes Leerzeichen ergibt 1 Zeichen mit Leerzeichen, 0 ohne Leerzeichen, 0 Wörter und 1 Zeile.
Wie viele Bytes ein Zeichen in UTF-8 braucht
„Bytes (UTF-8)“ gibt an, wie viel Platz der Text belegt, wenn er in UTF-8 gespeichert wird. UTF-8 braucht für ein Zeichen 1–4 Bytes (RFC 3629). Zwei gleich lange Texte können deshalb unterschiedlich viele Bytes haben, je nachdem, welche Zeichen darin vorkommen.
| Zeichen | Beispiel | Bytes |
|---|---|---|
| Lateinische Buchstaben ohne Akzent, Ziffern, einfache Satzzeichen, Leerzeichen, Zeilenumbruch | A, 7, ! | 1 |
| Lateinische Buchstaben mit Akzent | é, ñ | 2 |
| Hangul, chinesische Schriftzeichen, Kana, Eurozeichen | 가, 字, あ, € | 3 |
| Emoji | 😀 | 4 |
| Emoji aus mehreren Codes | 👍🏽 / 👨👩👧 | 8 / 18 |
Die letzte Zeile zeigt, dass ein Emoji, das als 1 Zeichen zählt, in Bytes ein Vielfaches kosten kann. Nimmt ein Feld mit Byte-Limit nichts mehr an, obwohl nach Zeichen noch Platz wäre, such nach solchen Zeichen.
Wenn du ein Zeichenlimit einhalten musst
Eine Vorgabe wie „höchstens 1.000 Zeichen“ bedeutet nicht überall dasselbe. Klär vorher, ob Leerzeichen mitzählen oder nicht und ob in Wahrheit Bytes gemessen werden.
- Steht nichts dabei, richte dich nach dem größeren Wert „Zeichen (mit Leerzeichen)“. Damit bleibst du bei beiden Zählweisen im Rahmen.
- Zählt der Empfänger einen Zeilenumbruch als 2 Zeichen, plan pro Zeilenumbruch 1 Zeichen Reserve ein. Ein Text aus fünf Absätzen hat 4 Zeilenumbrüche und kommt dort auf 4 Zeichen mehr als hier. Steht zwischen den Absätzen jeweils eine Leerzeile, sind es 8 Zeilenumbrüche.
- Musst du kürzen, fang bei Leerzeilen zwischen Absätzen, doppelten Leerzeichen und Emojis an. So sinkt die Zahl, ohne dass am Inhalt etwas fehlt.
- Zeigt das Eingabefeld des Empfängers selbst eine Zeichenzahl an, füg den Text dort ein und nimm diese Zahl als letzte Instanz.
Für ein Limit in Bytes liefert dieser Zähler nur den UTF-8-Wert. Die Zählweise mancher koreanischer Bewerbungsportale, bei der ein Hangul-Zeichen 2 Bytes zählt, berechnet der „Byte-Zähler für koreanische Bewerbungen“ gesondert.
