ホームページ  >  記事  >  バックエンド開発  >  php file_get_contentsの文字化けに関する問題

php file_get_contentsの文字化けに関する問題

WBOY
WBOYオリジナル
2016-06-13 13:40:031539ブラウズ

php file_get_contents
のコード化け問題 私のWebサイトのPHPファイルはutf-8形式なのですが、file_get_contentsで読み込んでほしいWebサイトがgb2312形式のため、表示が文字化けしてしまいます。詳細は以下のとおりです。

gb2312形式にutf-8形式の文字化けが含まれています

WebサイトにはPHPファイルが多数存在します 文字化けの問題を解決するには、次のことだけを行う予定です。 Web ページを読み取ると、PHP ファイルは gb2312 形式に変更され、その他のファイルは utf-8 形式のままになります。しかし、このファイルには他の PHP ファイルが含まれており、インクルードされたファイルには他のいくつかのファイルが含まれているため...

別の解決策は、iconv を使用して file_get_contents で取得したコンテンツを utf-8 形式に変換することですが、css ファイルは同時に、一部の Web ページには特殊な記号が含まれており、エンコード変換により失われたり、一部の Web ページには 1 つの段落しか取得されない可能性があります。

解決策のアイデアをいくつか教えてください...

-----解決策-------- -------------
エンコード中に iconv() 関数で変換できない文字がいくつかあります。これらの文字は mb_convert_encoding() 関数を使用して変換できます。
------解決策------------------
一般に、iconv を使用して変換すると、Web ページのコンテンツは正常になり、文字化けは発生しません。

iconv("GB2312","UTF-8) //TRANSLIT ", $data) ;
iconv("GB2312","UTF-8//IGNORE",$data) ;

変換するエンコーディングの指定に加えて、2 番目のパラメーター2 つのサフィックス: //TRANSLIT と //IGNORE、//TRANSLIT は直接変換できない文字を 1 つ以上の近似文字に自動的に変換し、//IGNORE は変換できない文字を無視します。デフォルトの効果は最初の不正な文字が切り捨てられます。


または、gb2312 の代わりに GBK を使用してみてください。
iconv("GBK","UTF-8",$data);

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