Sie verwenden DOMDocument zum Parsen von HTML, aber die Kodierung scheint verloren zu sein wenn Sie den HTML-Code laden. Japanische Zeichen im HTML werden durch verstümmelten Text ersetzt, während sie korrekt angezeigt werden, wenn die HTML-Zeichenfolge direkt über Echo ausgegeben wird.
DOMDocument geht davon aus, dass die Eingabezeichenfolge in ISO-8859-1 vorliegt (der HTTP/1.1-Standardzeichensatz) standardmäßig verwendet. Beim Parsen von UTF-8-Strings führt diese falsche Annahme zu einer Fehlinterpretation und damit zu verstümmelten Zeichen.
Um sicherzustellen, dass DOMDocument den HTML-String mit der richtigen Codierung lädt, haben Sie mehrere Möglichkeiten:
Hier ist ein Beispiel mit einer Meta-Zeichensatzdeklaration:
$profile = '<p>イリノイ州シカゴにて、アイルランド系の家庭に、9</p>'; $dom = new DOMDocument(); // Add meta charset declaration $contentType = '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'; $dom->loadHTML($contentType . $profile); echo $dom->saveHTML();
Dadurch wird die HTML-Zeichenfolge mit der richtigen UTF-8-Kodierung geladen , wobei die ursprünglichen japanischen Zeichen erhalten bleiben.
Das obige ist der detaillierte Inhalt vonWarum verarbeitet meine PHP-DOMDocument-loadHTML-Funktion die UTF-8-Codierung nicht korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!