UTF-8 Codes Logik für Festsetzung

Hallo zusammen.

Ich beschäftige mich zur Zeit mit dem Grundlegenenden von UTF-8.
Bei UTF-8 Kodierten Zeichenfolgen (wenn die denn durch mehr als ein Byte kodiert worden sind) sind die beiden hächstwertigen Bits ab dem zweiten Byte auf 10 gesetzt, kann man ja hier gut sehen:

2 Byte Kodierung: 110xxxxx 10xxxxxx
3 Byte Kodierung: 1110xxxx 10xxxxxx 10xxxxxx

Nur warum wurde das so gemacht? Damit diese Zeichenfolge auch als UTF8 identifiziert werden kann, hm, leuchtet mir aber auch nicht ein, warum wurde es nicht auf 11 festgelegt?

Vielleicht weiß ja jemand etwas dazu.

Schöne Grüße
Disap

Hallo,

ohne weiter in das Thema einzusteigen: wenn das erste UND das 2 Byte eines 2Byte-Zeichens mit 10 anfangen, wie willst du dann einen unterbrochenen Text resynchronisieren?

Gruss Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Disap,

würde hier mit Robustheit argumentieren:
Annahme, ein 1110xxxx wird falsch übertragen
und wird zu 1100xxxx, dann wird das
dritte Byte als Anfangsbyte eines Buchstabens intertretiert.
Die Einlese-Routine läuft jetzt quasi asynchron
über die Bytes und gibt einen völlig anderen Text aus.

Da aber jedes Byte eine eindeutig Kennung trägt, kann dieser
Übertragunsfehler erkannt werden, das dritte Byte wird einfach übersprungen
und es ist lediglich ein Zeichen defekt.

Grüße
Thorsten

Bei UTF-8 Kodierten Zeichenfolgen … sind die beiden
hächstwertigen Bits ab dem zweiten Byte auf 10 gesetzt, …
Nur warum wurde das so gemacht? …, warum wurde es nicht auf 11 festgelegt?

Vielleicht weiß ja jemand etwas dazu.

Schöne Grüße
Disap