Heim  >  Artikel  >  Backend-Entwicklung  >  Was tun, wenn PHP verstümmelte Zeichen aus der Datenbank liest?

Was tun, wenn PHP verstümmelte Zeichen aus der Datenbank liest?

藏色散人
藏色散人Original
2020-11-26 09:31:012433Durchsuche

Lösungen für PHP, das verstümmelte Zeichen aus der Datenbank liest: 1. Ändern Sie die Dateikodierung. 2. Deklarieren Sie die Kodierung im HTML-Code. 3. Ändern Sie die Kodierung der Datenbankverbindung Codierung der Datenbankverbindung.

Was tun, wenn PHP verstümmelte Zeichen aus der Datenbank liest?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 5.6. Diese Methode ist für alle Computermarken geeignet.

Empfohlen: „PHP-Video-Tutorial

Der Grund für das Lesen verstümmelter Zeichen aus der PHP-Datenbank

Im Allgemeinen gibt es zwei Gründe für das Auftreten verstümmelter Zeichen. Der erste liegt in der Kodierung (Zeichensatz). )-Einstellungsfehler, der dazu führt, dass der Browser zum Parsen die falsche Codierung verwendet, was zu einem unordentlichen „Book of Heaven“ führt, das den Bildschirm ausfüllt. Zweitens wird die Datei mit der falschen Codierung geöffnet und dann gespeichert war ursprünglich in GB2312 kodiert, wurde aber in UTF-8-Kodierung geöffnet und gespeichert. Um das obige Problem mit verstümmeltem Code zu lösen, müssen Sie zunächst wissen, welche Aspekte der Entwicklung eine Kodierung beinhalten:

 1. Dateikodierung: bezieht sich auf die Kodierung, in der die Seitendatei (.html, .php usw.) selbst gespeichert wird. Notepad und Dreamweaver erkennen beim Öffnen der Seite automatisch die Dateikodierung, sodass es weniger Probleme gibt. Allerdings erkennt ZendStudio die Kodierung nicht automatisch. Es öffnet die Datei nur in einer bestimmten Kodierung entsprechend der Konfiguration der Einstellungen. Wenn Sie die Datei während der Arbeit versehentlich mit der falschen Kodierung öffnen und sie nach der Änderung verstümmelt speichern Zeichen werden angezeigt.

 2. Codierung der Seitendeklaration: Im HTML-Code HEAD können Sie „meta http-equiv="Content-Type" content="text/html charset="XXX" /" verwenden (dieser Satz muss in „ Titel >>

  3. Datenbankverbindungskodierung: Bezieht sich darauf, welche Kodierung zum Übertragen von Daten an die Datenbank bei der Durchführung von Datenbankoperationen verwendet wird. Hierbei ist zu beachten, dass sie nicht mit der Kodierung der Datenbank selbst verwechselt werden sollte. Die Standardkodierung innerhalb von MySQL ist die LaTIn1-Kodierung, was bedeutet, dass MySQL Daten in der LaTIn1-Kodierung speichert und Daten, die in anderen Kodierungen an MySQL übertragen werden, in die Latin1-Kodierung konvertiert werden Ursache für verstümmelte Zeichen: Die oben genannten drei Kodierungseinstellungen sind inkonsistent. Da die meisten verschiedenen Kodierungen ASCII-kompatibel sind, werden englische Symbole nicht angezeigt und chinesische Zeichen werden unglücklich sein. Im Folgenden sind einige häufige Fehlersituationen und Lösungen aufgeführt:

1. Die Datenbank verwendet die Codierung UTF8 und die Codierung der Seitendeklaration ist GB2312. Dies ist die häufigste Ursache für verstümmelte Zeichen. Zu diesem Zeitpunkt werden die direkten SELECT-Daten im PHP-Skript verstümmelt

  um die MYSQL-Verbindungskodierung vor der Abfrage festzulegen und sicherzustellen, dass die Seitendeklarationskodierung mit der hier eingestellten Einstellung übereinstimmt (GBK ist eine Erweiterung von GB2312, können Sie verwenden). :

 mysql_query(”SET NAMES GBK“);
  或mysql_query(”SET NAMES GB2312“);

  Beachten Sie, dass es sich um UTF8 anstelle des häufig verwendeten UTF-8 handelt. Wenn die von der Seite deklarierte Codierung mit der internen Codierung der Datenbank übereinstimmt, kann sie nicht verwendet werden : Tatsächlich ist die Dateneingabe und -ausgabe von MYSQL komplizierter als oben erwähnt. In der MYSQL-Konfigurationsdatei my.ini sind zwei Standardcodierungen definiert: Standardzeichensatz und Standardzeichensatz. Legen Sie in [mysqld] jeweils die von der Clientverbindung und der Datenbank verwendete Codierung fest. Die von uns angegebene Codierung ist tatsächlich der Befehlszeilenparameter, wenn der MYSQL-Client eine Verbindung zum Server herstellt 2. Die Seitendeklarationskodierung stimmt nicht mit der Kodierung der Datei selbst überein. Dies kommt selten vor, da der Künstler die Seite im Browser erstellt In den meisten Fällen werden verstümmelte Zeichen angezeigt, weil einige kleinere Fehler nach der Veröffentlichung behoben wurden, die Seite mit der falschen Codierung geöffnet und dann gespeichert wurde oder eine FTP-Software verwendet wurde, um die Datei direkt online zu ändern, z. B. CuteFTP wird durch eine falsche Software-Codierungskonfiguration verursacht.

  3. Einige Freunde, die virtuelle Hosts mieten, haben immer noch verstümmelte Codes, obwohl die oben genannten drei Codierungen korrekt eingestellt sind. Wenn die Webseite beispielsweise in GB2312 kodiert ist, wird sie beim Öffnen von Browsern wie dem IE immer als UTF-8 erkannt. Der HEAD der Webseite hat bereits angegeben, dass es sich um GB2312 handelt, nachdem die Browserkodierung manuell auf GB2312 geändert wurde , die Seite wird normal angezeigt. Der Grund dafür ist, dass der Server-Apache die globale Standardkodierung des Servers festlegt und AddDefaultCharset UTF-8 in httpd.conf hinzufügt. Zu diesem Zeitpunkt sendet der Server zuerst den HTTP-Header und seine Priorität ist höher als die auf der Seite deklarierte Codierung. Natürlich erkennt der Browser ihn falsch. Es gibt zwei Lösungen. Administratoren sollten AddDefaultCharset GB2312 zur Konfigurationsdatei ihrer eigenen virtuellen Maschine hinzufügen, um die globale Konfiguration zu überschreiben, oder sie in .htaccess in ihrem eigenen Verzeichnis konfigurieren.

Weitere Kenntnisse zum Thema Programmierung finden Sie unter:

Programmiervideos

! !

Das obige ist der detaillierte Inhalt vonWas tun, wenn PHP verstümmelte Zeichen aus der Datenbank liest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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