Ein Problem, das während der Entwicklung nie gelöst wurde, besteht darin, dass die Seite UTF8-Codierung verwendet und der Header und das Ende die Methode der Vorlageneinbindungsdateien verwenden. Dadurch gibt es im Kopf und Ende eine zusätzliche Leerzeile von etwa 10 Pixeln Grund, und da ist nichts.
Der Grund dafür ist, dass sie alle in utf8 codiert sind. Beim Einbinden von Dateien enthält der endgültige Binärstream mehrere UTF8-Stücklisten-Tags. Der IE kann Seiten mit mehreren UTF8-Stücklisten-Tags nicht normal analysieren und ersetzt sie direkt durch die tatsächlich angezeigten Wagenrückläufe Leerzeilen, aber Firefox hat dieses Problem nicht.
Wenn die Vorlage daher die Einschlussmethode verwendet, um mehrere utf8-Dateien zu enthalten, und mit Ultraedit gespeichert werden muss, wählen Sie beim Speichern als Funktion einfach utf8 ohne BOM-Format aus.
Wenn die chinesische Seite außerdem das Title-Tag vor <meta http-equiv=“content-type“ content=“text/html /> im HTML-Head-Tag einfügt, wird die Seite angezeigt leer.
Daher sollten utf8-Seiten die Standardreihenfolge
<meta http-equiv=“content-type“ content=“text/html />
verwenden
<meta http-equiv=“content-Language“ content=“zh-CN“ />
<meta name=“robots“ content=“index,follow“ />
<meta name=“keywords“ content=““ />
<meta name=“description“ content=““ />
<meta name=“rating“ content=“general“ />
<meta name=“author“ content=““ />
<meta name=“copyright“ content=““ />
<meta name=“generator“ content=““ />
<title></title>
BOM-Header: xEFxBBxBF PHP4 und 5 ignorieren immer noch BOM, daher werden sie direkt vor dem Parsen ausgegeben.
Eine spezielle Beschreibung dieses Problems finden Sie in den w3.org-Standard-FAQ:
http://www.w3.org/International/questions/qa-utf8-bom.
Die Details lauten wie folgt:
In der UCS-Kodierung gibt es einen Code Das sogenannte „ZERO WIDTH NO“-BREAK SPACE“-Zeichen hat die Codierung FEFF. FFFE ist ein Zeichen, das in UCS nicht existiert und daher in der tatsächlichen Übertragung nicht erscheinen sollte. Die UCS-Spezifikation empfiehlt, dass wir vor der Übertragung des Bytestreams die Zeichen „ZERO WIDTH NO-BREAK SPACE“ übertragen. Wenn der Empfänger FEFF empfängt, zeigt er auf diese Weise an, dass der Bytestrom Big-Endian ist. Wenn er FFFE empfängt, zeigt er an, dass der Bytestrom Little-Endian ist. Daher wird das Zeichen „ZERO WIDTH NO-BREAK SPACE“ auch BOM genannt.
UTF-8 erfordert keine BOM zur Angabe der Bytereihenfolge, kann jedoch die BOM zur Angabe der Codierungsmethode verwenden. Die UTF-8-Kodierung des Zeichens „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 ist ein Betriebssystem, das BOM verwendet, um die Codierungsmethode von Textdateien zu markieren: WindowsXP Professional, Standardzeichensatz: Chinesisch
1) Notepad: Kann Dateien im UTF-8-Codierungsformat automatisch ohne BOM identifizieren, kann jedoch beim Speichern von Dateien nicht steuern Stückliste hinzufügen. Wenn die Datei gespeichert wird, wird die Stückliste einheitlich hinzugefügt.
2)
Editplus: Dateien im UTF-8-Kodierungsformat können nicht automatisch erkannt werden. Wählen Sie beim Speichern der Datei das UTF-8-Format aus und schreiben Sie keinen BOM-Header in den Datei-Header
Identifizieren Sie UTF-8-Dateien automatisch mit und ohne Stückliste (kann konfiguriert werden). Beim Speichern können Sie auswählen, ob Stücklisten durch Konfiguration hinzugefügt werden sollen.
(Besonderer Hinweis: Beim Speichern einer neu erstellten Datei müssen Sie das Speichern als UTF auswählen -8 kein BOM-Format)
Später stellte ich fest, dass Notepad ++ auch utf-8 BOM besser unterstützt, und ich empfehle jedem, es zu verwenden.