Surrogatpaare in UTF-16 testen
Ein Surrogatpaar besteht in UTF-16 aus zwei Einheiten und stellt ein Zeichen oberhalb von U+FFFF dar, zum Beispiel ein Emoji. Die vier Beispiele zeigen ein Emoji zwischen Buchstaben, eine Zeichenfolge mit einem Paar an der Grenze von 255 Einheiten, Vier-Byte-Zeichen und das Grenzpaar U+FFFF und U+10000. Sie helfen zu prüfen, ob Kürzen, Umkehren und Zählen in der eigenen Anwendung Paare zerreißen.
4 Varianten auf einer Seite, jede mit eigenem Kopier- oder Download-Knopf.
254 × a plus Emoji (Surrogatpaar auf Position 255/256)
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa …
Kürzen auf 255 UTF-16-Einheiten würde das Paar trennen (JavaScript .slice, Java substring). Gültig als Ganzes. UTF-16: 256, Codepoints: 255, UTF-8: 258 Bytes. Testzeichenfolge für eigene Systeme.
a😀b: Emoji zwischen zwei Buchstaben
a😀b
Prüft Umkehren, Teilstrings und Cursor-Positionen: UTF-16-Länge 4, aber nur 3 Zeichen. UTF-16: 4, Codepoints: 3, UTF-8: 6 Bytes. Testzeichenfolge für eigene Systeme.
Vier-Byte-UTF-8-Zeichen (U+1F4A9 und U+10348)
💩𐍈
Beide Zeichen liegen oberhalb von U+FFFF; MySQL utf8mb3 lehnt sie ab oder schneidet ab. UTF-16: 4, Codepoints: 2, UTF-8: 8 Bytes. Testzeichenfolge für eigene Systeme.
Letztes BMP-Zeichen U+FFFF und erstes darüber U+10000
𐀀
U+FFFF ist ein Nichtzeichen; U+10000 ist das erste Zeichen außerhalb der BMP. UTF-16: 3, Codepoints: 2, UTF-8: 7 Bytes. Testzeichenfolge für eigene Systeme.