Bei der Entwicklung von PHP tritt häufig das Problem verstümmelter chinesischer Namen auf. Der Grund dafür sind in der Regel inkonsistente Zeichensätze, beispielsweise ist die Datei nicht UTF-8-kodiert, die Datenbankverbindung ist nicht auf UTF-8 eingestellt oder der HTML-Seitenheader deklariert nicht die richtige Kodierung. Um Kauderwelsch vollständig zu beseitigen, ist es wichtig, während des gesamten Projekts eine konsistente Codierung sicherzustellen.
Stellen Sie zunächst sicher, dass das Kodierungsformat der PHP-Datei UTF-8 (kein BOM) ist. Speichern Sie die Datei im Editor als UTF-8-Kodierungsformat und legen Sie die Ausgabekodierung über die Header-Funktion am Anfang der PHP-Datei fest:
<?php
header('Content-Type: text/html; charset=utf-8');
?>Wenn Ihr PHP-Programm mit einer MySQL-Datenbank interagieren muss, stellen Sie nach dem Herstellen der Verbindung unbedingt die UTF-8-Kodierung ein. Dadurch wird sichergestellt, dass die von der Datenbank gelesenen und geschriebenen chinesischen Daten nicht verstümmelt erscheinen:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
$conn = new mysqli($servername, $username, $password, $dbname);
$conn-> set_charset("utf8");
?>Bei der Ausgabe einer Webseite muss außerdem die UTF-8-Kodierung angegeben werden, die verhindern kann, dass der Browser den Seiteninhalt falsch analysiert:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Problem mit verstümmelten chinesischen Zeichen</title> </head> <body> <?php echo "Hallo,Welt!"; ?> </body> </html>
Wenn die Codierung der Zeichenfolge selbst inkonsistent ist, können Sie die mb_convert_encoding-Funktion von PHP verwenden, um sie manuell in UTF-8 zu konvertieren:
<?php $str = "Chinesische verstümmelte Schriftzeichen"; $str_utf8 = mb_convert_encoding($str, "UTF-8"); echo $str_utf8; ?>
Vor der Ausgabe von Inhalten kann durch Festlegen der HTTP-Header-Informationen über die Header-Funktion der Codierungstyp des Ausgabeinhalts klar angegeben werden, wodurch verstümmelte Zeichen effektiv vermieden werden:
<?php
header('Content-Type: text/html; charset=utf-8');
echo "Hallo,Welt!";
?>Die Kernidee zur Lösung des verstümmelten chinesischen Namens PHP besteht darin, sicherzustellen, dass „Dateikodierung, Datenbankkodierung, Webseitenkodierung und HTTP-Header-Kodierung“ in UTF-8 vereinheitlicht werden. Solange die Kodierung konsistent ist, weist PHP bei der Verarbeitung von Chinesisch keine verstümmelten Zeichen mehr auf. Dadurch wird nicht nur die Kompatibilität der Website verbessert, sondern auch die chinesische Darstellung natürlicher und genauer.