Analyse der Unfallursachen durch Unicode-Signatur BOM

Analyse der Unfallursachen durch Unicode-Signatur BOM
Möglicherweise verwenden Sie hier Include-Dateien, was üblicherweise für Kopf- und Fußzeilen der Fall ist. Als ich die eingebundene Datei öffnete, stellte ich fest, dass in den Seiteneigenschaften das Element „Unicode-Signatur-BOM einbinden“ aktiviert war. Dann sage ich Ihnen, dass der Unfall durch dieses BOM verursacht wurde.

Unicode-BOM

Heute ist mir beim Schreiben eines JS-Skripts ein weiterer BOM-Unfall passiert.
Ich habe ein externes JS in die Seite eingefügt und darin befand sich dieser Satz: $.getJSON("/my/newmsg", function(data){alert(data);}); Andere Browser konnten den Inhalt normal anzeigen, aber der IE tat dies nicht. Ich war fast eine Stunde lang deprimiert. Ich vermutete, dass dieser Satz falsch geschrieben war, dass das JSON-Datenformat falsch war und dass ich ein Problem mit meinem Charakter hatte ...
Später vermutete ich, dass die Kodierung falsch war, also überprüfte ich die verdammte Stückliste. Sobald ich sie entfernt hatte, tauchte das Wunder unter der dunklen Wolke auf.
Obwohl ich faul bin und mein Blog selten aktualisiere, muss ich diesen Vorfall aufzeichnen, da er wirklich unerwartet war. JS kann aufgrund von BOM auch Unfälle verursachen – -|

In der Unicode-Spezifikation gibt es ein BOM-Konzept.
BOM ist die Abkürzung für Byte Order Mark, also eine Byte-Order-Markierung. Dieses Ding ist in einem normalen Texteditor nicht zu sehen. Kann man es als Dateikopf bezeichnen? Kann es nur in einem Binäreditor angezeigt werden? Das kann der Fall sein.
In der UCS-Kodierung gibt es ein Zeichen namens „ZERO WIDTH NO-BREAK SPACE“ und seine Kodierung ist FEFF. FFFE ist ein Zeichen, das in UCS nicht existiert und daher bei der tatsächlichen Übertragung nicht erscheinen sollte. Die UCS-Spezifikation empfiehlt, vor der Übertragung des Bytestroms das Zeichen „ZERO WIDTH NO-BREAK SPACE“ zu übertragen. Wenn der Empfänger also FEFF empfängt, bedeutet dies, dass der Bytestrom Big-Endian ist; wenn er FFFE empfängt, bedeutet dies, dass der Bytestrom Little-Endian ist. Daher werden die Zeichen „ZERO WIDTH NO-BREAK SPACE“ auch BOM genannt.
UTF-8 erfordert kein BOM zur Angabe der Byte-Reihenfolge, kann aber BOM zur Angabe der Kodierung verwenden. Die UTF-8-Kodierung der Zeichen „ZERO WIDTH NO-BREAK SPACE“ ist EF BB BF. Wenn der Empfänger also einen Bytestrom empfängt, der mit EF BB BF beginnt, weiß er, dass dieser UTF-8-codiert ist. Windows verwendet BOM, um die Kodierung von Textdateien zu kennzeichnen.

<<:  So nutzen Sie Partitionierung, um die MySQL-Datenverarbeitung für Milliarden von Daten zu optimieren

>>:  Mit Mailto ist das Senden von E-Mails im HTML-Format ganz einfach

Artikel empfehlen

Implementierung von MySQL Multi-version Concurrency Control MVCC

Inhaltsverzeichnis Was ist MVCC MVCC-Implementier...

Setzen Sie den Eingang auf schreibgeschützt über deaktiviert und schreibgeschützt

Es gibt zwei Möglichkeiten, schreibgeschützte Eing...

Textmodus im IE! Einführung in die Rolle von DOCTYPE

Nachdem das im vorherigen Artikel besprochene Prob...

DIV-Hintergrund, halbtransparenter Text, nicht durchscheinender Stil

Der DIV-Hintergrund ist halbtransparent, aber die ...

JavaScript zum Erreichen einer festen Seitenleiste

Verwenden Sie Javascript, um eine feste Seitenlei...

Implementierung eines Web-Rechners auf Basis von JavaScript

In diesem Artikel wird der spezifische JavaScript...

Lassen Sie sich die tiefe Kopie von js verstehen

Inhaltsverzeichnis js tiefe Kopie Methode der Dat...

Gemeinsame Eigenschaften des Framesets (Unterteilung von Frames und Fenstern)

Ein Frame ist ein Webseitenbildschirm, der in mehr...

Vue realisiert den Produktlupeneffekt

In diesem Artikelbeispiel wird der spezifische Co...

Zwei Tools zum Teilen des Bildschirms im Linux-Befehlszeilenterminal

Hier sind zwei Terminal-Split-Screen-Tools: scree...

3D-Tunneleffekt implementiert durch CSS3

Der erzielte EffektImplementierungscode html <...

Eine kurze Analyse der Crontab-Aufgabenplanung in Linux

1. Erstellen Sie eine Planungsaufgabe Anweisung c...