Heim > php教程 > PHP开发 > Hauptteil

Detaillierte Erläuterung der Deklarationsmethode für die PHP-Seitenkodierung (Header oder Meta)

黄舟
Freigeben: 2016-12-13 12:00:17
Original
1158 Leute haben es durchsucht

PHP-Header zum Definieren einer PHP-Seite als UTF-Kodierung oder GBK-Kodierung

PHP-Seite als UTF-Kodierung
header("Content-type: text/html; charset=utf-8");

php-Seite ist GBK-codiert
header("Content-type: text/html; charset=gb2312");

Die PHP-Seite ist Big5-codiert
header("Content-type: text/html; charset=big5");

Normalerweise wird der obige Code platziert auf der PHP-Homepage

Der Unterschied zwischen der Verwendung von Header oder Meta zur Implementierung der PHP-Seitenkodierung

1. Verwenden Sie Codierung der Beschriftungseinstellungsseite

Der Zweck dieses Tags besteht darin, anzugeben, welche Zeichensatzkodierung der Browser des Clients zum Anzeigen der Seite verwendet. xxx kann GB2312, GBK, UTF-8 sein (anders als bei MySQL). UTF8) und so weiter. Daher können die meisten Seiten diese Methode verwenden, um dem Browser mitzuteilen, welche Codierung beim Anzeigen dieser Seite verwendet werden soll, um Codierungsfehler und verstümmelte Zeichen zu vermeiden. Aber manchmal tun wir es Ich habe festgestellt, dass dieser Satz immer noch nicht funktioniert, egal um welche Art von xxx es sich handelt, der Browser verwendet immer die gleiche Codierung.

Bitte beachten Sie, dass zu HTML-Informationen gehört und nur eine Anweisung ist. Es zeigt an, dass der Server die HTML-Informationen an den Browser übergeben hat.

2. header("content-type:text/html; charset=xxx");

Die Funktion dieser Funktion header() besteht darin, die Informationen in den Klammern an den http zu senden Kopfzeile.

Wenn der Inhalt in den Klammern dem im Artikel entspricht, ist die Funktion grundsätzlich dieselbe wie beim -Tag. Wenn Sie das erste vergleichen, werden Sie feststellen, dass die Zeichen ähnlich sind. Der Unterschied besteht jedoch darin, dass es diesen Absatz gibt Mit dieser Funktion verwendet der Browser immer die von Ihnen angeforderte xxx-Kodierung und ist niemals ungehorsam. Daher ist diese Funktion sehr nützlich. Warum passiert das? Dann müssen wir über den Unterschied zwischen HTTPS-Headern und HTML-Informationen sprechen:

Der https-Header ist eine Zeichenfolge, die vom Server gesendet wird, bevor HTML-Informationen über das HTTP-Protokoll an den Browser gesendet werden.

Da das Meta-Tag zu HTML-Informationen gehört, erreicht der von header() gesendete Inhalt zuerst den Browser. Der beliebte Punkt ist, dass header() eine höhere Priorität als Meta hat (ich weiß nicht, ob das so ist). Das kann man nicht sagen). Fügen Sie eine PHP-Seite mit Header („content-type:text/html; charset=xxx“) und erkennt der Browser nur den ehemaligen http-Header und nicht Meta. Diese Funktion kann natürlich nur in PHP-Seiten verwendet werden.

Es stellt sich auch die Frage, warum Ersteres definitiv funktioniert, Letzteres jedoch manchmal nicht? Aus diesem Grund wollen wir als nächstes über Apache sprechen.

3. AddDefaultCharset

conf des Apache-Stammverzeichnisses Im Ordner befindet sich das gesamte Apache-Konfigurationsdokument httpd.conf.

Öffnen Sie httpd.conf mit einem Texteditor. Zeile 708 (kann in verschiedenen Versionen unterschiedlich sein) enthält AddDefaultCharset xxx, xxx ist der Codierungsname. Die Bedeutung dieser Codezeile: Stellen Sie den Zeichensatz im https-Header der Webseitendatei auf dem gesamten Server auf Ihren Standard-xxx-Zeichensatz ein. Das Vorhandensein dieser Zeile entspricht dem Angeben jeder Datei Eine Headerzeile hinzugefügt("content-type:text/html; charset=xxx"). Jetzt können Sie verstehen, warum der Browser immer gb2312 verwendet, obwohl die Metaeinstellung utf-8 ist.

Wenn ein Header("content-type:text/html; charset=xxx"), wird der Standardzeichensatz in den von Ihnen festgelegten Zeichensatz geändert, sodass diese Funktion immer nützlich ist. Wenn AddDefaultCharset Fügen Sie vor xxx ein „#“ hinzu, kommentieren Sie diesen Satz aus und die Seite enthält keinen Header („content-type...“), dann ist das Meta-Tag an der Reihe, wirksam zu werden.

Zusammenfassung:

Lassen Sie es uns klären

header("content-type:text/html; charset=xxx")
AddDefaultCharset xxx

Wenn Sie ein Webprogrammierer sind, fügen Sie einen Header hinzu("content-type:text/html; charset=xxx"), um sicherzustellen, dass es auf jedem Server korrekt angezeigt werden kann und eine starke Portabilität aufweist.

Was den Satz AddDefaultCharset betrifft xxx, ob Sie eine Anmerkung wünschen oder nicht, ist Ansichtssache. Wie auch immer, ich habe es auskommentiert, aber ich muss beim Schreiben einer Seite auch header () schreiben, damit sie normal auf dem Server angezeigt werden kann.

2. Datenbankkodierung

Vor der Abfrage der Datenbank führt das PHP-Programm zunächst mysql_query(“SET NAMES xxxx“); wobei xxxx die Kodierung Ihrer Webseite ist (charset=xxxx), wenn die Webseite charset=utf8 hat charset=gb2312, dann xxxx=gb2312. Fast alle WEB-Programme haben einen gemeinsamen Code zum Herstellen einer Verbindung zur Datenbank, der in einer Datei abgelegt wird mysql_query("set name") wird den Zweck erfüllen.

SET NAMES Zeigt an, welcher Zeichensatz in den vom Client gesendeten SQL-Anweisungen verwendet wird. Daher SET Die NAMES-Anweisung „utf-8“ teilt dem Server mit, dass „zukünftige Informationen von diesem Client den Zeichensatz utf-8 verwenden werden“. Außerdem wird der Zeichensatz für die Ergebnisse angegeben, die der Server an den Client zurücksendet. (Wenn Sie beispielsweise a Eine SELECT-Anweisung, die angibt, welcher Zeichensatz für Spaltenwerte verwendet wird. )

Einheitliche Codierung von PHP-Seiten

MySQL-Datenbank-Codierung, HTML-Seitencodierung, PHP- oder HTML-Datei selbst-Codierung müssen alle konsistent sein.
1. MySQL-Datenbankkodierung: Geben Sie beim Erstellen der Datenbank die Kodierung an (z. B. gbk_chinese_ci). Geben Sie beim Erstellen von Datentabellen, Feldern und beim Einfügen von Daten keine Kodierung an. Die Kodierung der Datenbank wird automatisch übernommen.
Es gibt auch eine Codierung beim Herstellen einer Verbindung zur Datenbank. Nach dem Herstellen einer Verbindung zur Datenbank können Sie
mysql_query('SET NAMES gbk');//Ersetzen Sie gbk durch Ihre Kodierung, z. B. utf8.

2. Die Kodierung der HTML-Seite bezieht sich auf die Einstellung dieser Zeile:


3. Die Kodierung der PHP- oder HTML-Datei selbst: Verwenden Sie editplus, um die PHP-Datei oder HTML-Datei zu öffnen. Wählen Sie beim Speichern die Kodierung aus. Wenn die Datenbank- und Seitenkodierung gbk ist, wählen Sie ansi als Kodierung hier; wenn die Datenbank- und Seitenkodierung utf-8 ist, wählen Sie hier utf-8 aus.

4. Beachten Sie außerdem, dass die in Javascript oder Flash übergebenen Daten in utf-8 codiert sind. Wenn die Datenbank- und Seitencodierung gbk ist, müssen sie transcodiert und dann in die Datenbank geschrieben werden.
iconv('utf-8', 'gbk', $content);

5 Im PHP-Programm können Sie eine Zeile hinzufügen, um die Codierung des PHP-Quellprogramms anzugeben:
header('Content-type: text/html; charset=gbk');

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage