Detaillierte Beschreibung der Unicode-Signatur-BOM

Detaillierte Beschreibung der Unicode-Signatur-BOM
Unicode-Signatur-BOM – Was ist die BOM?
BOM ist die Abkürzung für Byte Order Mark. Es handelt sich um die Standardmarkierung zur Identifizierung der Kodierung im UTF-Kodierungsschema. In UTF-16 war es ursprünglich FF FE und in UTF-8 wird es zu EF BB BF. Dieses Flag ist optional und da UTF8-Bytes keine Reihenfolge haben, kann es verwendet werden, um zu erkennen, ob ein Bytestrom UTF-8-codiert ist. Microsoft führt diese Erkennung durch, manche Software tut dies jedoch nicht und behandelt es als normales Zeichen.

Microsoft fügt seinen eigenen Textdateien im UTF-8-Format drei Bytes EF BB BF hinzu. Programme wie Notepad unter Windows bestimmen anhand dieser drei Bytes, ob eine Textdatei ASCII oder UTF-8 ist. Dies ist jedoch nur eine von Microsoft im Geheimen vorgenommene Markierung. Für UTF-8-Textdateien auf anderen Plattformen gibt es keine solche Markierung.

Unicode-Signatur-BOM - So zeigen Sie UTF-8 an

Das bedeutet, dass eine UTF-8-Datei eine BOM haben kann oder auch nicht. Wie kann man sie also unterscheiden?
Vier Methoden.
1. Öffnen Sie die Datei mit UltraEdit-32 , wechseln Sie in den hexadezimalen Bearbeitungsmodus und prüfen Sie, ob der Dateikopf EF BB BF enthält.
2. Öffnen Sie es mit Dreamweaver, überprüfen Sie die Seiteneigenschaften und sehen Sie nach, ob vor „Unicode-Signatur-BOM einschließen“ ein Häkchen gesetzt ist.
3. Öffnen Sie die Datei mit dem Windows-Editor, wählen Sie „Speichern unter“ und prüfen Sie, ob die Standardkodierung der Datei UTF-8 oder ANSI ist. Wenn es ANSI ist, verfügt die Datei nicht über BOM.

Unicode簽名bom Unicode-Signatur-BOM

4: Öffnen Sie es mit emeditor , wählen Sie „Speichern unter“ und prüfen Sie, ob unter „Kodierung“ die Option „Unicode-Signatur (bom) hinzufügen (G)“ aktiviert ist. Wie in der Abbildung gezeigt:

Unicode Signature BOM - Probleme und Lösungen bei der Anwendung in PHP

Beachten Sie, dass beim Konvertieren einer gb2312-Datei in eine UTF-8-Datei mit Convertz die Standardeinstellung darin besteht, BOM nicht einzuschließen. Die oben genannten unleserlichen Zeichen können ohne BOM erscheinen. Wenn jedoch BOM enthalten ist, sollten Sie mit PHP-Include-Dateien vorsichtig sein, da EFBBBF vor dem PHP-Bytestream hinzugefügt wird. Die vorherige Ausgabe auf dem Display kann zu Programmfehlern führen. Eine Lösung besteht darin, alle enthaltenen Dateien als ANSI zu speichern, und die Hauptdatei kann UTF-8 sein. Um die BOM aus einer Datei zu entfernen, öffnen Sie sie mit UlterEdit, wechseln Sie in den hexadezimalen Bearbeitungsmodus, ersetzen Sie die ersten drei Bytes (dieses verdammte EFBBBF) durch 20, speichern Sie (denken Sie daran, beim Speichern die automatische Sicherungsfunktion auszuschalten), wechseln Sie dann in den Standardbearbeitungsmodus und entfernen Sie die ersten drei Leerzeichen.

Tipps zur Unicode-Signatur-BOM-Codierung

Ich habe auch einiges über die Kodierung gelernt: Die sogenannten in Unicode gespeicherten Dateien sind eigentlich UTF-16, was zufällig dasselbe ist wie der Unicode-Code, aber konzeptionell sind Unicode und UTF zwei verschiedene Dinge. Unicode ist ein Darstellungsschema für die Speicherkodierung und UTF ist ein Schema zum Speichern und Übertragen von Unicode. UTF-16 ist in zwei Typen unterteilt: High Byte First (LE) und High Byte Last (BE). Zur offiziellen UTF-Kodierung gehört auch UTF-32, welches ebenfalls in LE und BE unterteilt wird. Zur nicht-Unicode-offiziellen UTF-Kodierung gehört auch UTF-7, das vor allem für die E-Mail-Übertragung genutzt wird. Der Einzelbyte-Teil von UTF-8 ist mit ISO-8859-1 kompatibel. Dies liegt hauptsächlich daran, dass einige alte Systeme und Bibliotheksfunktionen UTF-16 nicht richtig verarbeiten können und daher nicht mehr verwendet werden. Bei englischen Zeichen wird dadurch auch Dateispeicherplatz gespart (auf Kosten der Platzverschwendung bei nicht-englischen Zeichen). Bei Verwendung von iso-8859-1 werden sowohl utf8 als auch iso-8859-1 durch ein Byte dargestellt. Bei der Darstellung anderer Zeichen verwendet utf-8 zwei oder drei Bytes.

<<:  Lösung zur Installation von Vim im Docker-Container

>>:  Detaillierte Erläuterung der zehn am häufigsten verwendeten Zeichenfolgenfunktionen in MySQL

Artikel empfehlen

Dynamischer Sternenhimmel Hintergrund umgesetzt mit CSS3

Ergebnis:Implementierungscode html <link href=...

Fehler mit ungerader Breite und Höhe in IE6

Wie in der Abbildung gezeigt: Aber bei der Anzeig...

Ubuntu MySQL-Version auf 5.7 aktualisiert

Vor einigen Tagen teilte die Bibliothek mit, dass...

Docker verwendet den Prune-Befehl, um das Nicht-Image zu bereinigen

Inhaltsverzeichnis Die Entstehung und Verwirrung ...

MySQL-Tabellenübergreifende Abfrage und Tabellenübergreifende Aktualisierung

Freunde, die über Grundkenntnisse in SQL verfügen...

So ändern Sie die Gruppe, zu der ein Benutzer in Linux gehört

Ändern Sie die Gruppe, zu der ein Benutzer in Lin...

Detaillierte Erklärung des JavaScript ES6-Moduls

Inhaltsverzeichnis 0. Was ist ein Modul 1.Modul l...

Grundlegendes Verständnis und Verwendung der HTML-Auswahloption

Detaillierte Erklärung von HTML (Option auswählen)...

Vue implementiert eine Formularvalidierungsfunktion

Dieser Artikel beschreibt hauptsächlich, wie die ...

Hinweise zum MySQL-Datenbank-Sicherungsprozess

Heute habe ich mir einige Dinge im Zusammenhang m...

So installieren und implementieren Sie Zabbix 5.0 für Nginx

Inhaltsverzeichnis Experimentelle Umgebung Instal...

Eine kurze Einführung in die MySQL-Speicher-Engine

1. MySql-Architektur Bevor wir die Speicher-Engin...