Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Deklarationsmethode für die PHP-Seitenkodierung (Header oder Meta)

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

高洛峰
高洛峰Original
2017-01-21 14:02:10980Durchsuche

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"); 🎜>
Die PHP-Seite ist GBK-codiert
header("Content-type: text/html; charset=gb2312");

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

Normalerweise wird der obige Code auf der Homepage der PHP-Seite platziert

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

1. Verwenden Sie das Tag >
Die Funktion dieses Tags besteht darin, anzugeben, welche Zeichensatzkodierung der Browser des Clients zum Anzeigen der Seite verwendet. xxx kann GB2312, GBK, UTF-8 (anders als MySQL, das UTF8 ist) usw. sein. 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 werden wir feststellen, dass dieser Satz immer noch nicht funktioniert, egal welcher xxx ist, der Browser verwendet immer die gleiche Codierung, darüber werde ich später sprechen.

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 es mit dem ersten vergleichen, werden Sie feststellen, dass die Zeichen ähnlich sind . Der Unterschied besteht jedoch darin, dass der Browser bei Vorhandensein dieser Funktion immer die von Ihnen angeforderte XXX-Kodierung verwendet und niemals ungehorsam ist. Daher ist diese Funktion sehr nützlich. Warum passiert das? Dann müssen wir über den Unterschied zwischen HTTPS-Header 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 möglich ist). gesagt werden). Fügen Sie eine PHP-Seite hinzu, die sowohl Header("content-type:text/html; charset=xxx") als auch enthält. Der Browser erkennt nur den früheren http-Header und nicht das Meta. Natürlich kann diese Funktion nur innerhalb von 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

Im conf-Ordner im Apache-Stammverzeichnis befindet sich das gesamte Apache-Konfigurationsdokument httpd.conf.

Öffnen Sie httpd.conf mit einem Texteditor. Zeile 708 (verschiedene Versionen können unterschiedlich sein) enthält AddDefaultCharset xxx, wobei xxx der Codierungsname ist. 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 Hinzufügen eines Headers („content-type: text/html; charset=xxx“) zu jeder Datei. Jetzt können Sie verstehen, warum der Browser immer gb2312 verwendet, obwohl die Meta-Einstellung utf-8 ist.

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

Zusammenfassung:

Sortieren wir

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"), Sicherstellen, dass es auf jedem Server korrekt angezeigt werden kann und über eine starke Portabilität verfügt.

Was den Satz AddDefaultCharset xxx betrifft, ist es Ansichtssache, ob er kommentiert werden soll oder nicht. 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"); aus, wobei xxxx die Kodierung Ihrer Webseite ist (charset=xxxx). Wenn die Webseite charset=utf8 ist, dann ist xxxx=gb2312 in der Webseite, dann haben fast alle WEB-Programme einen gemeinsamen Code zum Herstellen einer Verbindung zur Datenbank, der in dieser Datei abgelegt wird Datei hinzufügen, mysql_query(" set name") reicht aus.

SET NAMES Zeigt an, welcher Zeichensatz in den vom Client gesendeten SQL-Anweisungen verwendet wird. Daher teilt die SET NAMES-Anweisung „utf-8“ 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 eine SELECT-Anweisung verwenden, gibt diese an, welcher Zeichensatz für den Spaltenwert verwendet wird.)

PHP-Seitenkodierung ist einheitlich

MySQL-Datenbankkodierung, HTML-Seitenkodierung, PHP oder die HTML-Datei selbst. Die Codierung muss über alle hinweg 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, beim Erstellen von Feldern und beim Einfügen von Daten nicht die Kodierung an.
Beim Herstellen einer Verbindung zur Datenbank gibt es auch eine Codierung. Führen Sie nach dem Herstellen einer Verbindung zur Datenbank
mysql_query('SET NAMES gbk'); // Ersetzen Sie gbk durch Ihre Codierung aus, 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 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');

Ausführlichere Erläuterungen zu den Deklarationsmethoden für die PHP-Seitenkodierung (Header oder Meta) finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
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