Warum Zeichenzähler unterschiedliche Werte zeigen
Eine Grenze muss ihre Zählweise nennen. Ein Familienemoji sieht wie ein Zeichen aus, enthält aber mehrere Codepunkte und UTF-16-Einheiten. Vergleichen wir Grapheme, JavaScript-Länge und UTF-8-Bytes.
Eingabe und Ergebnis
| Intl.Segmenter | UTF-16 | UTF-8 (bytes) |
Hello world | 11 | 11 | 11 |
é (U+00E9) | 1 | 1 | 2 |
é (U+0065 U+0301) | 1 | 2 | 3 |
👨👩👧👦 | 1 | 11 | 25 |
A↵B (LF) | 3 | 3 | 3 |
Ergebnis verstehen
Apps24 verwendet Intl.Segmenter. Leerzeichen und Zeilenumbrüche zählen; die Zählung ohne Leerraum entfernt keine Satzzeichen. Die beiden é sehen ähnlich aus, belegen aber unterschiedlich viele Bytes. Eine Byte- oder JavaScript-Grenze kann einen optisch kurzen Text ablehnen.
Nächster Schritt
Probieren Sie jedes Beispiel einzeln und verwenden Sie für A↵B einen echten Zeilenumbruch. Prüfen Sie, ob das Zielformular Zeichen, Bytes oder Wörter begrenzt. Lassen Sie Spielraum für Normalisierung und Zeilenenden. Entfernen Sie keine Akzente nur für gleiche Zählwerte.
Tool verwendenGrenzen und Testbedingungen
Tests prüfen die Beispiele mit Intl.Segmenter. Ältere Browser nutzen eine ausgewiesene Codepunkt-Zählung, die kombinierte Emojis anders zählt. Sprachabhängige Wortgrenzen sind keine universellen redaktionellen Regeln.
Quellen
Apps24 gleicht Beispiele mit der Implementierung und Regressionstests ab. Browserexperimente nennen ihre Bedingungen, ohne alle Geräte zu zertifizieren. Melden Sie Fehler mit URL, Eingabe, erwartetem Ergebnis und Browser. Senden Sie keine Passwörter, privaten Dokumente oder personenbezogenen Daten.