BOM | Byte Order Mark einfach erklärt


Zeichen können auf unterschiedliche Art und Weisen codiert werden. Während man heutzutage vor allem UTF-8 verwendet, war früher die Kodierung mit UTF-16 populär – die auch heute oft noch genutzt wird. Teilweise verwendet man auch UTF-32. Anders als bei UTF-8 muss bei Kodierungen mit einer größeren Anzahl von Bits pro Zeichen jedoch die Reihenfolge der Bytes bekannt sein.

In einer UTF-8-Kodierung ist jedes Zeichen innerhalb von einem Byte (also 8 Bits) darstellbar. Bei UTF-16 benötigt man hingegen zwei Bytes (also 16 Bits) um ein Zeichen zu codieren. Damit sich das Zeichen also richtig interpretieren lässt, muss klar sein, ob die Bytes von links nach rechts oder von rechts nach links gelesen werden. Abhängig davon entsteht nämlich ein komplett anderer Wert.

  • Von links nach rechts: 01101010 00110101 ist in hexadezimaler Schreibweise 6a35
  • Von rechts nach links: 01101010 00110101 ist in hexadezimaler Schreibweise 356a

Würde man diese Ziffernfolge jetzt im Kontext einer Unicode-Tabelle sehen, würden zwei vollkommen unterschiedliche Zeichen dargestellt. Man spricht bei der ersten Lesart von Big Endian (BE), bei der zweiten von Little Endian (LE). Grund dafür ist, dass man beim Big Endian den höheren, beim Little Endian den niedrigeren Wert zuerst angibt.



Source link

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.