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 0und 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 8ein 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.