ホームページ >バックエンド開発 >PHPチュートリアル >【ヘルプ100点】xml_parse_into_struct関数でXML、中国語の文字化けを解析

【ヘルプ100点】xml_parse_into_struct関数でXML、中国語の文字化けを解析

WBOY
WBOYオリジナル
2016-06-23 14:01:421224ブラウズ

テストコードは以下の通りです:

$xmldata = '<?xml version="1.0" encoding="UTF-8"?><description>中文</description>';$parser = xml_parser_create ('UTF-8');$vals = array();xml_parse_into_struct ($parser, $xmldata, $vals);xml_parser_free ($parser);print_r($vals);


PHPバージョンは5.4.20

変換結果では中国語部分が文字化けしています。

この問題に遭遇した人がいたら、その解決方法を教えてください...ありがとうございます!


ディスカッションへの返信 (解決策)

明らかにあなたのプログラム ファイルは gbk です
$xmldata = 'cc2a3c708791b3c626d2b5fe406911688b55addfb40ddf4a384b1010d729e503中国語61a0a342259d33d3673a8ccefaee33c2';
$xmldata = iconv('gbk', 'utf-8', $xmldata);

実際には、iconv を変換することもできます
ただし、ここでの表示は正常であり、コード化けはありません。ブラウザのエンコーディングが間違っています

明らかにプログラム ファイルは gbk です
$xmldata = 'caf2c1d7cc42225eda6488816e448fc18b55addfb40ddf4a384b1010d729e503中国語392246fc4f2f6dd5c48f56801072e0d4' ;
$xmldata = iconv('gbk', 'utf-8', $xmldata);

うーん...確認したところ、プログラム ファイルのエンコード形式は BOM 形式なしでエンコードされていました。 . UTF-8エンコーディングに変換すると、中国語は正常に表示されるようになります...

ご協力ありがとうございます、確かにファイルのエンコーディング形式に問題があります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。