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

So berechnen Sie die Bildrate FPS von Webanimationen

Inhaltsverzeichnis Standards für flüssige Animati...

So verwenden Sie ECharts in WeChat Mini-Programmen mit uniapp

Heute verwenden wir Uniapp, um Echarts zur Anzeig...

MySQL-Datenbank muss SQL-Anweisungen kennen (erweiterte Version)

Dies ist eine erweiterte Version. Die Fragen und ...

Einführung in das Linux-Netzwerksystem

Inhaltsverzeichnis Netzwerk Informationen Ändern ...

MySql 8.0.11 Installations- und Konfigurationstutorial

Offizielle Website-Adresse: https://dev.mysql.com...

MySQL-Operator-Zusammenfassung

Inhaltsverzeichnis 1. Arithmetische Operatoren 2....

Details zum JavaScript-Timer

Inhaltsverzeichnis 1. Kurze Einführung 2. Interva...

Detaillierte Erklärung zur Konfiguration der OpenGauss-Datenbank im Docker

Für Windows-Benutzer Verwenden von openGauss in D...

Native JS-Canvas zum Erzielen einer einfachen Schlange

In diesem Artikel wird der spezifische Code von J...

Detaillierte Erklärung der MySQL-Berechtigungssteuerung

Inhaltsverzeichnis MySQL-Berechtigungskontrolle B...