Ich bitte um die Anzahl aller möglichen gültigen Kombinationen in Unicode mit Erklärung.
1.111.998 : 17 Flugzeuge × 65.536 Zeichen pro Flugzeug - 2048 Ersatzzeichen - 66 Nichtzeichen
Beachten Sie, dass UTF-8 und UTF-32 theoretisch viel mehr als 17 Ebenen codieren können, der Bereich jedoch aufgrund der Einschränkungen der UTF-16-Codierung eingeschränkt ist .
In Unicode 12.1 werden tatsächlich 137.929 Codepunkte zugewiesen .
Ich verstehe auch nicht, warum Fortsetzungsbytes Einschränkungen haben, obwohl das Startbyte dieses Zeichens löscht, wie lange es sein sollte.
Der Zweck dieser Einschränkung in UTF-8 besteht darin, die Codierung selbstsynchronisierend zu machen .
Betrachten Sie als Gegenbeispiel die chinesische GB 18030-Codierung . Dort wird der Buchstabe ß
als Bytefolge dargestellt 81 30 89 38
, die die Kodierung der Ziffern 0
und enthält 8
. Wenn Sie also eine Zeichenfolgensuchfunktion haben, die nicht für diese codierungsspezifische Eigenart ausgelegt ist, wird bei der Suche nach der Ziffer 8
ein falsches Positiv im Buchstaben gefunden ß
.
In UTF-8 kann dies nicht passieren, da die Nichtüberlappung zwischen Lead-Bytes und Trail-Bytes garantiert, dass die Codierung eines kürzeren Zeichens niemals innerhalb der Codierung eines längeren Zeichens erfolgen kann.