String-Längenprüfer
Prüfe die Länge eines Strings in Zeichen, Unicode-Codepoints, UTF-16-Codeeinheiten und UTF-8-Bytes. Lege eine minimale und maximale Länge fest, um zu sehen, ob der String hineinpasst, und erhalte eine gekürzte Kopie, bei der Emojis niemals halbiert werden. Läuft in deinem Browser.
Eingabe
Ausgabe
Readme
Was ist die Länge eines Strings?
Die Länge eines Strings hängt davon ab, was gezählt wird. Ein Mensch sieht Zeichen, Programme zählen jedoch Codepoints, UTF-16-Codeunits oder Bytes – und diese Zahlen unterscheiden sich oft. Das Emoji 👍🏽 sieht wie ein Zeichen aus, besteht aber aus 2 Codepoints, 4 UTF-16-Codeunits und 8 UTF-8-Bytes. JavaScript, Java und C# geben UTF-16-Codeunits als Länge zurück, Datenbanken begrenzen häufig die Anzahl der Bytes, und Formularfelder zählen Zeilenumbrüche möglicherweise als zwei Zeichen.
Toolbeschreibung
Dieses Tool zeigt die Länge eines Strings gleichzeitig in vier Einheiten an und prüft sie gegen eine minimale und maximale Länge. Verwenden Sie es, um herauszufinden, ob ein Benutzername, ein Titel oder ein Datenbankwert in ein festgelegtes Limit passt, oder warum zwei Programme für denselben Text unterschiedliche Längen melden. Wenn der String zu lang ist, erhalten Sie eine gekürzte Kopie, die in das Limit passt, ohne ein Zeichen zu teilen.
Funktionen
- Zählt Zeichen, Unicode-Codepoints, UTF-16-Codeunits und UTF-8-Bytes
- Prüft die Länge anhand einer optionalen Mindest- und Höchstlänge in der von Ihnen gewählten Einheit
- Zeigt an, wie viele Einheiten bis zum Limit verbleiben, fehlen oder darüber liegen
- Kürzt einen zu langen String, ohne Emojis, Flaggen oder Zeichen mit Akzenten zu teilen
- Kann führende und nachgestellte Leerzeichen ignorieren
- Kann Zeilenumbrüche als CR LF zählen, so wie HTML-Formulare sie übermitteln
Funktionsweise
Zeichen sind Graphemcluster – Einheiten, die ein Mensch als ein Zeichen liest –, die mithilfe der integrierten Unicode-Textsegmentierung des Browsers erkannt werden. Codepoints sind die Unicode-Werte im String. UTF-16-Codeunits entsprechen dem, was String.length in JavaScript zurückgibt: Zeichen außerhalb der Basic Multilingual Plane, beispielsweise die meisten Emojis, belegen zwei Codeunits. UTF-8-Bytes entsprechen der Größe des als UTF-8 codierten Strings. Beim Kürzen bleiben vollständige Zeichen erhalten, bis das nächste Zeichen das Maximum überschreiten würde.
Tipps
- Prüfen Sie bei einem
VARCHAR-Limit in MySQL oder einemvarchar-Limit in PostgreSQL nach Unicode-Codepoints. Bei einem Byte-Limit, beispielsweise für einen Indexschlüssel oder ein Feld in einem Netzwerkprotokoll, sollten Sie nach UTF-8-Bytes prüfen. - Das
maxlength-Attribut eines HTML-Eingabefelds zählt UTF-16-Codeunits, sodass ein Emoji bis zu zwei Einheiten belegen kann. - Browser senden Zeilenumbrüche in Textareas als CR LF. Ein Server, der die Länge prüft, kann daher jeden Zeilenumbruch doppelt zählen. Aktivieren Sie die Option CR LF, um dies abzugleichen.