Nachdruck von http://www.jb51.net/article/22501.htm
PHP-Header zum Definieren einer PHP-Seite als UTF-Kodierung oder GBK-Kodierung
Die PHP-Seite ist utf-codiert header("Content-type: text/html; charset=utf-8"); 🎜 >Die PHP-Seite ist GBK-codiert header("Content-type: text/html; charset=gb2312"); The PHP-Seite ist Big5-Kodierung header("Content-type: text/html; charset=big5"); Normalerweise der obige Code wird auf der PHP-Startseite der Seite platziert Der Unterschied zwischen der Verwendung von Header oder Meta zur Implementierung der PHP-Seitenkodierung1. Seitenkodierung 1. Verwenden Sie das Tag , um die Seitenkodierung festzulegen Die Der Zweck dieses Tags besteht darin, anzugeben, was der Browser des Clients verwendet. Die Zeichensatzcodierung zeigt die Seite an. xxx kann GB2312, GBK, UTF-8 sein (im Gegensatz zu MySQL ist MySQL UTF8) usw. Daher können die meisten Seiten diese Methode verwenden Um dem Browser mitzuteilen, was beim Anzeigen dieser Seite verwendet werden soll, um keine Codierungsfehler zu verursachen und verstümmelte Zeichen zu erzeugen, wird der Browser immer noch nicht funktionieren gleiche Kodierung. Ich werde später darauf eingehen. Bitte beachten Sie, dass nur eine Anweisung ist ("content-type:text/html; charset=xxx"); Die Funktion dieser Funktion header() besteht darin, die Informationen in den Klammern zu senden der http-Header.
Wenn der Inhalt in den Klammern dem im Artikel genannten entspricht, ist die Funktion im Grunde die gleiche wie beim -Tag Wenn es diese Funktion gibt, verwendet der Browser außerdem immer die von Ihnen angeforderte xxx-Codierung. Warum ist diese Funktion also so nützlich? Der Unterschied in den Informationen: 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ß es nicht). wenn ich das sagen darf). Fügen Sie eine PHP-Seite hinzu, die sowohl Header("content-type:text/html; charset=xxx") als auch , der Browser erkennt nur den ehemaligen http-Header und nicht das Meta. Natürlich kann diese Funktion nur in PHP-Seiten verwendet werden. hat auch eine Frage Warum funktioniert Ersteres definitiv, Letzteres jedoch manchmal nicht? Aus diesem Grund werden wir als nächstes über Apache sprechen. >Im Ordner conf im Apache-Stammverzeichnis befindet sich das Ganze Apache-Konfigurationsdokument httpd.conf. Öffnen Sie httpd.conf mit einem Texteditor. (Verschiedene Versionen können unterschiedlich sein.) Es gibt AddDefaultCharset xxx, xxx ist der Codierungsname Diese Codezeile: Stellen Sie den Zeichensatz im https-Header des gesamten Servers auf Ihren Standard-xxx-Zeichensatz ein. Diese Zeile entspricht der Angabe jeder Zeichensatzzeile („content-type:text/html ;
charset=xxx"). Jetzt können Sie verstehen, warum der Browser immer gb2312 verwendet, obwohl die Metaeinstellung utf-8 ist.
Wenn es einen Header("content-type:text in der Webseite gibt /html; charset=xxx") wird der Standardzeichensatz in den von Ihnen festgelegten Zeichensatz geändert, sodass diese Funktion immer nützlich ist. Wenn Sie vor AddDefaultCharset xxx ein „#“ hinzufügen, kommentieren Sie diesen Satz aus und Wenn die Seite keinen Header („content-type...“) enthält, ist das Meta-Tag an der Reihe.
Zusammenfassung:
Komm schon
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 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 charset=utf8 auf der Webseite, dann xxxx=utf8, wenn charset=gb2312 auf der Webseite, dann xxxx=gb2312, fast alle WEB-Programme haben einen gemeinsamen Code, um eine Verbindung zur Datenbank herzustellen In einer Datei abgelegt. Hier beitreten
mysql_query("set name") wird den Zweck erfüllen.SET NAMES Zeigt an, welcher Zeichensatz in der vom Client gesendeten SQL-Anweisung 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-Seitenkodierungseinheitlichkeit MySQL Die Datenbankkodierung, die HTML-Seitenkodierung und die PHP- oder HTML-Datei selbst-Kodierung 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 automatisch vererbt werden. Es gibt auch eine Codierung beim Herstellen einer Verbindung mit der Datenbank. Nach dem Herstellen einer Verbindung mit der Datenbank können Sie mysql_query('SET NAMES gbk');//replace gbk ausführen mit Ihrer Codierung, etwa utf8. 2. Die Kodierung der HTML-Seite bezieht sich auf die Einstellung dieser Zeile: 3. Die Kodierung der PHP- oder HTML-Datei selbst: Öffnen Sie die PHP- oder HTML-Datei mit editplus und wählen Sie beim Speichern die Kodierung aus. Wenn die Die Datenbank- und Seitenkodierung ist gbk. Wenn die Datenbank- und Seitenkodierung utf-8 ist, wird hier auch utf-8 ausgewählt. Beachten Sie auch, dass die in Javascript oder Flash übergebenen Daten utf sind. 8-Kodierung: Wenn die Datenbank- und Seitenkodierung gbk ist, transkodieren Sie sie und schreiben Sie dann in die Datenbank iconv('utf-8', 'gbk', $content); 5. Im PHP-Programm können Sie eine Zeile hinzufügen, um die Kodierung des PHP-Quellprogramms anzugeben:
header('Content-type: text/html; charset=gbk' ) ;
Das Obige hat den PHP-Header eingeführt, um Probleme mit verstümmeltem Code und anderen Problemen mit verstümmeltem Code zu lösen. Ich hoffe, dass er Freunden, die sich für PHP-Tutorials interessieren, hilfreich sein wird.
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