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

Tutorial zum Herunterladen und Installieren von XFTP (grafisches Tutorial)

Wenn Sie Dateien zwischen Windows und Linux übert...

Detaillierter Vergleich von Ember.js und Vue.js

Inhaltsverzeichnis Überblick Warum ein Framework ...

Zusammenfassung der neuen Verwendung von vi (vim) unter Linux

Ich benutze den vi-Editor seit mehreren Jahren, h...

js zur Realisierung der Web-Message-Board-Funktion

In diesem Artikelbeispiel wird der spezifische JS...

js Array fill() Füllmethode

Inhaltsverzeichnis 1. fill()-Syntax 2. Verwendung...

CentOS-System-RPM-Installation und -Konfiguration von Nginx

Inhaltsverzeichnis CentOS RPM-Installation und Ko...

Vue.js implementiert eine Timeline-Funktion

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

Beispiel für die JavaScript-Funktion „CollectGarbage“

Sehen wir uns zunächst ein Beispiel für die Speic...

Miniprogramm zur Implementierung des Paging-Effekts

In diesem Artikelbeispiel wird der spezifische Co...

JavaScript implementiert das mobile Puzzlespiel mit neun Rastern

In diesem Artikel wird der spezifische Code für J...

Wird die Tabelle durch ein Update in einer MySQL-Transaktion gesperrt?

Zwei Fälle: 1. Mit Index 2. Ohne Index Voraussetz...