ホームページ  >  記事  >  バックエンド開発  >  php simplexml_load_file 中国語の文字化けソリューション_PHP チュートリアル

php simplexml_load_file 中国語の文字化けソリューション_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:57:311379ブラウズ

中国語の文字化けはエンコーディングが原因であることがほとんどです。 中国語の文字化けの問題を解決するには、出力エンコーディングを調整するだけで済みます。 simplexml_load_file の中国語の文字化けの解決策を見てみましょう。

PHP5.0では、simplexml_load_file()はXMLファイルの読み込みや処理には良い関数ですが、中国語の読み込みや処理を行うと文字化けしてしまうことが判明しました。調べたところ、中国語コンテンツの場合はiconvで変換する必要があることが分かりました。エンコーディングを指定しないと文字化けして表示されます。

コードは次のとおりです コードをコピー

$xml=simple_load_file('xml ファイル');

foreach($xml->soft as $temp){

echo $temp->name; // これはソフトウェアの名前です。

echo $temp->mem; //これはソフトウェアの説明です。

}

英語は正しいですが、中国語は文字化けしています。これはエンコードの問題だと思います。

その後、核心文などの関連記事をネットで見つけました

1. XML のエンコーディングがファイルの種類と一致しない場合、すぐにエラーが報告されます
2. simplexml は gbk の XML を処理できます。つまり、ファイルのコンテンツとエンコーディングは両方とも gbk (ANSI 形式) です
3. ファイルの内容に関係なく、処理後は UTF8 になります。


具体的な方法は以下の通りです

コードは次のとおりです コードをコピー

$chname = iconv('utf-8', 'gb2312', $table->param["name"]);

「utf-8」としてエンコードされた XML ファイルのコンテンツを gb2312 形式のコンテンツに変換します。

中国語エンコードはgb2312形式で出力されます。

まだテストしていませんが、ベンダーページのエンコーディングを uft8 に直接変換する別の方法があります

コードは次のとおりです コードをコピー

header("コンテンツタイプ: text/html; charset=utf-8");
//WordPress のデフォルトのエンコーディングは utf-8 ですが、IE はデフォルトで gb2312 として認識するため、ヘッダーを使用してエンコーディングを送信します
$url="http://www.bKjia.c0m";
$xml = simplexml_load_file($url);
//リモート XML ファイルをロードします
$title=$xml->チャンネル->タイトル;
// ノードに基づいてブログのタイトルを取得します (ループなし)
echo $title."
";
// ノードがループされている場合は、foreach ループを使用してノードを取り出すことができます
foreach($xml->channel->item as $item){
echo $item->title."
";
}
//ループして記事タイトルを取得します

www.bkjia.com本当http://www.bkjia.com/PHPjc/632066.html技術記事中国語の文字化けの原因は主にエンコーディングにあります。 中国語の文字化けの問題を解決するには、出力エンコーディングを調整するだけです。 simplexml_load_file の中国語の文字化けの解決策を見てみましょう。 PHP5.0では...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。