MudGuard: Unicode: Erkennen der Kodierung anhand des BOMs

Beitrag lesen

Hi,

Wenn man jetzt also das Kodierungsschemata eines Bytestroms mit BOM vorne daran rausfinden will, guckt man sich einfach die ersten Bytes an:

Ein Schema, mehrere Schemata (bzw. mehrere Schemen, mehrere Schemas, der Duden läßt alle 3 Pluralformen zu, Singular ist aber immer Schema).

EF BB BF  .. ist UTF-8.
FE FF     .. ist UTF-16 in Big Endian.
FF FE     .. ist UTF-16 in Little Endian, es empfiehlt sich also, die Bytes umzudrehen.

(Und was ist mit UTF-8 in Little Endian? So wie ich das verstehe, gibt es Little Endian in UTF-8 gar nicht, zudem wäre BF BB EF anscheinend gar kein richtiges UTF-8-Zeichen, meine ich. Aber das mögen Informiertere als ich erklären)

Da UTF-8 nicht aus Bytepaaren, sondern aus Einzelbytes besteht, gibt es kein Reihenfolgeproblem innerhalb des Paares.

Zu klären wäre jetzt m.E. noch, ob
FE FF ... bzw. FF FE ... eine zulässige UTF-8 Kodierung eines Zeichens sein kann.
Dies ist nicht der Fall, der höchste Wert eines ersten Bytes einer UTF-8 Kodierung ist F4. FE und FF können also nicht vorkommen.

Und ob
EFBB BFxx als erste Bytepaare eines UTF-16 Strings vorkommen dürfen.
Wenn ich das richtig sehe, muß bei UTF-16 immer ein ByteOrderMark FFEF bzw. FEFF am Anfang stehen, so daß das auch nicht der Fall sein kann.

Oder liege ich da falsch?

cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.