Heim > Backend-Entwicklung > PHP-Problem > Was soll ich tun, wenn bei der Abfrage in PHP verstümmelte Zeichen angezeigt werden?

Was soll ich tun, wenn bei der Abfrage in PHP verstümmelte Zeichen angezeigt werden?

PHPz
Freigeben: 2023-04-11 14:09:30
Original
582 Leute haben es durchsucht

PHP ist eine weit verbreitete Programmiersprache, die häufig für die Webentwicklung verwendet wird. Bei der Verwendung von PHP zur Durchführung von Datenbankabfragen kann es manchmal zu Problemen bei der Verarbeitung verstümmelter Zeichen kommen. Dieses Problem tritt normalerweise beim Umgang mit chinesischen Schriftzeichen auf.

Die in der Datenbank gespeicherte Zeichenkodierung unterscheidet sich möglicherweise von der Zeichenkodierung der Webseite, was bei der Abfrage zu verstümmelten Zeichen führen kann. Obwohl dieses Problem einfach erscheinen mag, kann es sich negativ auf die Leistung und Sicherheit Ihrer Website auswirken.

Im Folgenden finden Sie mehrere Möglichkeiten, verstümmelte Zeichen bei Abfragen in PHP zu lösen.

  1. Stellen Sie die Datenbank-Zeichenkodierung auf UTF-8 ein.

UTF-8 ist eine Zeichenkodierung, die alle Unicode-Zeichen unterstützen kann. Wenn die Datenbank UTF-8-Kodierung verwendet, treten bei der Abfrage keine verstümmelten Zeichen auf. Daher ist die Einstellung der Datenbank-Zeichenkodierung auf UTF-8 eine Möglichkeit, das Problem der verstümmelten Zeichen zu lösen.

Mit dem folgenden Code können Sie die Zeichenkodierung der MySQL-Datenbank auf UTF-8 einstellen:

$conn = mysqli_connect($servername, $username, $password, $dbname);
mysqli_set_charset($conn, "utf8");
Nach dem Login kopieren

Dabei ist $servername der Datenbankservername, $username der Datenbankbenutzername, $password das Datenbankkennwort, und $dbname ist der Datenbankname. Mit der Funktion mysqli_set_charset() wird der Zeichensatz festgelegt.

  1. Stellen Sie die Zeichenkodierung vor der Abfrage ein.

Die Einstellung der richtigen Zeichenkodierung vor der Abfrage kann auch das Problem verstümmelter Zeichen lösen. Die Zeichenkodierung kann mit dem folgenden PHP-Code eingestellt werden:

$conn = mysqli_connect($servername, $username, $password, $dbname);
mysqli_query($conn, "SET NAMES 'utf8'");
Nach dem Login kopieren

wobei $servername, $username, $password und $dbname jeweils der Name des Datenbankservers, der Benutzername, das Passwort und der Datenbankname sind. Die Funktion mysqli_query() setzt die Zeichenkodierung auf UTF-8.

  1. Verwenden Sie die PHP-Funktion iconv() für die Konvertierung der Zeichenkodierung.

Die PHP-Funktion iconv() kann eine Zeichenkodierung in eine andere Zeichenkodierung konvertieren. Mit der Funktion iconv() können Sie Abfrageergebnisse aus dem Datenbankzeichensatz in den Webseitenzeichensatz konvertieren. Das Folgende ist ein Beispiel:

$conn = mysqli_connect($servername, $username, $password, $dbname);
mysqli_set_charset($conn, "utf8");
$result = mysqli_query($conn, "SELECT * FROM `user`");
while ($row = mysqli_fetch_array($result)) {
    $name = iconv("UTF-8", "GB2312//IGNORE", $row['name']);
    echo $name . "
"; }
Nach dem Login kopieren

In diesem Beispiel wird das Namensfeld im Abfrageergebnis von der UTF-8-Kodierung in die GB2312-Kodierung konvertiert. Verwenden Sie den Parameter //IGNORE, um Zeichen zu ignorieren, die nicht konvertiert werden können.

  1. Verwenden Sie die PHP-Funktion mb_convert_encoding() für die Konvertierung der Zeichenkodierung.

Die PHP-Funktion mb_convert_encoding() kann auch die Zeichenkodierung in andere Kodierungen konvertieren. Das Folgende ist ein Beispiel:

$conn = mysqli_connect($servername, $username, $password, $dbname);
mysqli_set_charset($conn, "utf8");
$result = mysqli_query($conn, "SELECT * FROM `user`");
while ($row = mysqli_fetch_array($result)) {
    $name = mb_convert_encoding($row['name'], "GBK", "UTF-8");
    echo $name . "
"; }
Nach dem Login kopieren

In diesem Beispiel wird das Namensfeld im Abfrageergebnis von der UTF-8-Kodierung in die GBK-Kodierung konvertiert.

Zusammenfassung

Die obige Methode kann das Problem verstümmelter Zeichen bei Abfragen in PHP lösen. Wenn Sie PHP für Datenbankabfragen verwenden, wird empfohlen, die Zeichenkodierung der Datenbank auf UTF-8 einzustellen und vor der Abfrage die richtige Zeichenkodierung festzulegen. Wenn Sie immer noch verstümmelte Zeichen haben, können Sie die PHP-Funktion iconv() oder die PHP-Funktion mb_convert_encoding() verwenden, um Zeichenkodierungen zu konvertieren.

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn bei der Abfrage in PHP verstümmelte Zeichen angezeigt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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 Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage