Byte-Ordnungszeichen

Das Byte-Ordnungszeichen (BOM) ist ein Charakter von Unicode, der verwendet ist, um dem endianness (Byte-Ordnung) von einer Textdatei oder Strom Zeichen zu geben. Sein Codepunkt ist. BOM Gebrauch, ist und, wenn verwendet, fakultativ, sollte am Anfang des Textstroms erscheinen. Außer seinem spezifischen Gebrauch als ein Hinweis der Byte-Ordnung kann der BOM Charakter auch anzeigen, in welcher von den mehreren Darstellungen von Unicode der Text verschlüsselt wird.

Weil Unicode als 16-bit- oder ganze 32-Bit-Zahlen verschlüsselt werden kann, muss ein Computer, der diese encodings von willkürlichen Quellen erhält, wissen, in welcher Byte-Ordnung die ganzen Zahlen verschlüsselt werden. Der BOM gibt dem Erzeuger des Textes eine Weise, den Textstrom-endianness dem Verbraucher des Textes zu beschreiben, ohne einen Vertrag oder metadata außerhalb des Textstroms selbst zu verlangen. Sobald der Empfang-Computer den Textstrom verbraucht hat, bearbeitet er vermutlich die Charaktere in seiner eigenen heimischen Byte-Ordnung und braucht nicht mehr den BOM. Folglich entsteht das Bedürfnis nach einem BOM im Zusammenhang des Textaustausches, aber nicht im normalen Text, der innerhalb einer geschlossenen Umgebung in einer Prozession geht.

Gebrauch

Wenn der BOM Charakter in der Mitte eines Datenstroms erscheint, sagt Unicode, dass er als ein "Nullbreite-geschütztes Leerzeichen" (im Wesentlichen ein ungültiger Charakter) interpretiert werden sollte. In Unicode 3.2 wird dieser Gebrauch zu Gunsten vom "" Tischler-Wortcharakter, U+2060 missbilligt. Das erlaubt U+FEFF, nur als ein BOM verwendet zu werden.

UTF-8

Die UTF-8 Darstellung des BOM ist die Byte-Folge. Ein Textaufbereiter oder WWW-Browser, den Text als ISO-8859-1 oder CP1252 interpretierend, werden die Charaktere dafür zeigen.

Der Unicode Standard erlaubt wirklich den BOM in UTF-8, aber verlangt nicht oder empfiehlt seinen Gebrauch. Byte-Ordnung hat keine Bedeutung in UTF-8 so in UTF-8, dem der BOM nur dient, um einen Textstrom oder Datei als UTF-8 zu identifizieren.

Ein Grund, dem der UTF-8 BOM nicht empfohlen wird, besteht darin, dass viele Stücke der Software ohne Unterstützung von Unicode dennoch im Stande sind, UTF-8 innerhalb eines Textes, aber nicht am Anfang eines Textes zu behandeln. Zum Beispiel können die Bytes von UTF-8 zwischen den Notierungen von Schnur-Konstanten auf vielen Programmiersprachen gelegt werden, und diese Sprache wird den richtigen UTF-8 einer Datei oder einer Anzeige, trotz der Sprache schreiben, nichts über UTF-8 wissend. Das stellt einen leichten Wanderungspfad zur Verfügung, um Systeme zu Unicode umzuwandeln und das ganze Vermächtnis encodings zu entfernen, ohne gleichzeitig die Programmiersprache zu befördern. Die unerwarteten drei Bytes des BOM brechen das jedoch, weil sie gelegen werden, wo sie gewiss ein Syntax-Fehler sein werden.

Ein Haupt-BOM kann auch Software vereiteln, die Muster verwendet, das auf dem Anfang einer Textdatei zusammenpasst, da es 3 Bytes vor dem Muster einfügt. Obwohl allgemein vereinigt, mit der Bude von Unix am Anfang einer interpretierten Schrift ist das Problem weit verbreiteter. Zum Beispiel in PHP wird die Existenz eines BOM die Seite veranlassen, Produktion zu beginnen, bevor der anfängliche Code interpretiert wird, Probleme verursachend, wenn die Seite versucht, HTTP kundenspezifische Kopfbälle zu senden (der gesetzt werden muss, bevor Produktion beginnt).

Einige allgemeine Programme von Microsoft, wie Notizbuch und Visueller C ++, fügen BOMs zu UTF-8 Dateien standardmäßig hinzu.

UTF-16

In UTF-16 kann ein BOM als der erste Charakter einer Datei oder Charakter-Stroms gelegt werden, um den endianness (Byte-Ordnung) von allen 16-Bit-Codeeinheiten der Datei oder des Stroms anzuzeigen.

  • Wenn die 16-Bit-Einheiten in der großen-endian Byte-Ordnung vertreten werden, wird dieser BOM Charakter in der Folge von Bytes, wie gefolgt, davon erscheinen. Diese Folge erscheint als die ISO-8859-1 Charaktere in einer Textanzeige, die annimmt, dass der Text ISO-8859-1 ist, obwohl UTF-16 Text mehr oder weniger unlesbar sein wird, wenn die Textanzeige UTF-16 nicht unterstützt.
  • wenn der 16-Bit-Einheitsgebrauch wenig-endian bestellt, wird die Folge von Bytes dadurch gefolgt sein. Diese Folge erscheint als die ISO-8859-1 Charaktere in einer Textanzeige, die annimmt, dass der Text ISO-8859-1 ist.

Programme, die UTF-8 erwarten, können diese oder Fehlerhinweise je nachdem zeigen, wie sie UTF-8 Verschlüsselung von Fehlern behandeln. In allen Fällen werden sie wahrscheinlich den Rest der Datei als Müll zeigen (ein UTF-16 Text, der ASCII nur enthält, wird ziemlich lesbar sein).

Für den IANA eingeschriebener charsets UTF-16BE und UTF-16LE sollte ein Byte-Ordnungszeichen nicht verwendet werden, weil die Namen dieser Codierungen bereits die Byte-Ordnung bestimmen. Wenn gestoßen, überall in solch einem Textstrom soll U+FEFF als eine "Nullbreite Raum ohne Brechungen" interpretiert werden.

Klausel D98 der Übereinstimmung (Abschnitt 3.10) der Standardstaaten von Unicode "Der UTF-16 kann Verschlüsselung des Schemas oder kann mit einem BOM nicht beginnen. Jedoch, wenn es keinen BOM, und ohne ein Protokoll des höheren Niveaus, die Byte-Ordnung des UTF-16 gibt, ist Verschlüsselung des Schemas groß-endian." Ob ein Protokoll des höheren Niveaus in der Kraft ist, ist für die Interpretation offen. Dateien, die zu einem Computer lokal sind, für den das heimische Byte, das bestellt, wenig-endian zum Beispiel ist, könnten diskutiert werden, um als UTF-16LE implizit verschlüsselt zu werden. Deshalb wird die Annahme von großen-endian weit ignoriert. Wenn jene dieselben Dateien im Internet andererseits zugänglich sind, kann keine solche Annahme gemacht werden. Wenn er nach ASCII Charakteren oder gerade sucht, ist der Raumcharakter (U+0020) eine Methode, die UTF-16 Byte-Ordnung zu bestimmen.

UTF-32

Obwohl ein BOM mit UTF-32 verwendet werden konnte, wird diese Verschlüsselung für die Übertragung selten verwendet. Sonst sind dieselben Regeln bezüglich UTF-16 anwendbar.

Darstellungen des Bytes bestellen Zeichen durch die Verschlüsselung

Siehe auch

Links


Troma Unterhaltung / Trainspotting
Impressum & Datenschutz