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

Detaillierte Erläuterung der sieben Wertübertragungsmethoden von Vue

1. Vom Vater zum Sohn Definieren Sie das props Fe...

Zusammenfassung der 16 XHTML1.0- und HTML-Kompatibilitätsrichtlinien

1. Vermeiden Sie es, die Seite als XML-Typ zu dek...

So installieren Sie Oracle auf Windows Server 2016

1. Installieren Sie Oracle. Im Internet gibt es z...

Grafisches Tutorial zur Deinstallation und Installation von MySQL unter Linux

Dies ist mein erster Blog. Ich bin seit zwei Jahr...

MySQL 8.0.16 Installations- und Konfigurations-Tutorial unter Windows 10

In diesem Artikel finden Sie das grafische Tutori...

So verfolgen Sie Benutzer mit JS

Inhaltsverzeichnis 1. Synchrones AJAX 2. Asynchro...

Das WeChat-Applet implementiert den Serveraufbau des Benutzeranmeldemoduls

Ich habe node.js zum Erstellen des Servers gewähl...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.25

Es gibt zwei Arten von MySQL-Installationsdateien...

Methoden für JavaScript-String-Objekte

Inhaltsverzeichnis Methoden des String-Objekts Me...