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

MySQL 8.0.13 Download- und Installations-Tutorial mit Bildern und Text

MySQL ist die am häufigsten verwendete Datenbank....

Eine kurze Einführung in MySQL-Funktionen

Inhaltsverzeichnis 1. Mathematische Funktionen 2....

Zusammenfassung der Verwendung von MySQL Online DDL gh-ost

Hintergrund: Als DBA werden die meisten DDL-Änder...

Mysql Sql-Anweisungsübungen (50 Fragen)

Tabellenname und Felder –1. Studentenliste Studen...

Zusammenfassung der Kompatibilitätsprobleme beim Flex-Layout

1. W3C-Versionen von Flex Version 2009 Flag: Anze...

Zusammenfassung grundlegender SQL-Anweisungen in der MySQL-Datenbank

Dieser Artikel beschreibt anhand von Beispielen d...

Details und Beispielcode der MySQL-Replikationstabelle

Detaillierte Erklärung der MySQL-Replikationstabe...

Zwei Möglichkeiten, den 30-Sekunden-Werbecode aus dem Youku-Video zu entfernen

Ich glaube, jeder kennt dieses Gefühl: Ein Video m...

Vue implementiert die Benutzeranmeldungsumschaltung

In diesem Artikelbeispiel wird der spezifische Co...

Einführung in den strikten Modus von JavaScript verwenden Sie strikt

Inhaltsverzeichnis 1. Übersicht 1.1 Was ist der s...

Tutorial zur SQL-Optimierung: IN- und RANGE-Abfragen

Vorwort In „High Performance MySQL“ wird erwähnt,...

CSS HACK für IE6/IE7/IE8/IE9/FF (Zusammenfassung)

Seit ich die offizielle Version von IE8.0 install...

IDEA-Konfigurationsprozess von Docker

IDEA ist das am häufigsten verwendete Entwicklung...