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.
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");
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.
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'");
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.
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 . "
"; }
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.
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 . "
"; }
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!