DOMDocument in PHP hat kein Problem mit XML-Operationen, solange es auf Englisch ist, aber wenn es sich um chinesische Schriftarten handelt, werden verstümmelte Zeichen angezeigt.
PHP Das interne DOM ist ein utf8-Mechanismus. Die Codierung wird durch Überprüfen des Zeichensatzes des Metas festgelegt. Wenn kein Zeichensatz vorhanden ist, erfolgt die Verarbeitung als iso8859. In diesem Fall ist die Ausgabe utf8 . , also habe ich verstümmelte Zeichen gesehen, zum Beispiel:
$xml = new DOMDocument(); @$xml->loadHTML('<div>我就是测试看看</div>'); $dom = new DOMXPath($xml); echo $dom->query('//div')->item(0)->saveXML();
Öffnen Sie das Web page Bei der Ausführung werden Sie feststellen, dass die Ausgabe verstümmelt ist. Wie kann dieses Problem gelöst werden? Es gibt zwei Möglichkeiten.
Die erste: Geben Sie die Codierung beim Laden von HTML an. Der folgende Code wird aus der Antwort im offiziellen php.net-Dokument zitiert:
$doc = new DOMDocument(); $doc->loadHTML('<?xml encoding="UTF-8">' . $html); foreach ($doc->childNodes as $item) { if ($item->nodeType == XML_PI_NODE) { $doc->removeChild($item); // remove hack } } $doc->encoding = 'UTF-8'; // insert proper
Die zweite Methode: Konvertieren Sie die Ausgabezeichen über iconv neu. Der Code lautet wie folgt:
echo iconv("UTF-8", "GB18030//TRANSLIT", $dom->saveXML($n) );
Das Obige ist die vom Herausgeber eingeführte Lösung für das Problem verstümmelter chinesischer Zeichen beim Speichern von XML in DOMDocument. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht Der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte mich auch bei Ihnen allen für Ihre Unterstützung der chinesischen PHP-Website bedanken!
Weitere PHP-Lösungen für das chinesische verstümmelte Problem beim Speichern von XML durch DOMDocument finden Sie auf der chinesischen PHP-Website für verwandte Artikel!