ホームページ > バックエンド開発 > PHPチュートリアル > PHPでDOMDocumentがxmlを保存するときに中国語が文字化けする問題の解決策

PHPでDOMDocumentがxmlを保存するときに中国語が文字化けする問題の解決策

高洛峰
リリース: 2023-03-03 22:48:01
オリジナル
1876 人が閲覧しました

PHPのDOMDocumentは英語であればXML操作に問題はありませんが、中国語フォントの場合、

PHPのDOMは内部的にロード時に文字化けする問題を解決する方法を紹介します。 HTMLでは文字内のメタのcharsetを確認してエンコードを設定しますが、charsetがない場合はiso8859として処理されるため、XML保存を行うと文字化けが発生します。

こんなことを言われてもよくわかりませんね、例えば:

$xml = new DOMDocument();
@$xml->loadHTML(&#39;<div>我就是测试看看</div>&#39;);
$dom = new DOMXPath($xml);
echo $dom->query(&#39;//div&#39;)->item(0)->saveXML();
ログイン後にコピー

Webページを開いて実行すると、出力が文字化けしていることがわかりますが、この問題を解決するにはどうすればよいでしょうか?方法は 2 つあります。

1 つ目の方法: HTML をロードするときにエンコーディングを指定します。 以下のコードは php.net 公式ドキュメントの返信から引用します。 コードは次のとおりです。 : iconv を通して 出力文字を再変換するコードは次のとおりです:

$doc = new DOMDocument();
$doc->loadHTML(&#39;<?xml encoding="UTF-8">&#39; . $html);
foreach ($doc->childNodes as $item)
{
if ($item->nodeType == XML_PI_NODE)
{
$doc->removeChild($item); // remove hack
}
}
$doc->encoding = &#39;UTF-8&#39;; // insert proper
ログイン後にコピー

上記は、DOMDocument が PHP で xml を保存するときに発生する中国語文字化けの問題を解決するためにエディターが紹介する解決策です。ご質問がございましたら、メッセージを残してください。すぐに返信させていただきます。また、PHP 中国語 Web サイトをサポートしていただきありがとうございます。

DOMDocument が xml を保存するときに発生する中国語の文字化けの問題に対する PHP の解決策の詳細については、PHP 中国語 Web サイトの関連記事に注目してください。


関連ラベル:
xml
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート