中国語の文字化けはエンコーディングが原因であることがほとんどです。 中国語の文字化けの問題を解決するには、出力エンコーディングを調整するだけで済みます。 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"); |