ホームページ >バックエンド開発 >PHPチュートリアル >curlでキャプチャしたWebページの中国語文字化け問題について!

curlでキャプチャしたWebページの中国語文字化け問題について!

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

現在トランスコーディングにこの関数を使用しています:
function safetyEncoding($str){
$code=mb_detect_encoding($str,array('ASCII','GB2312','GBK','UTF-8'));// 検出文字列エンコーディング
if($code=="CP936"){
$result=$str; }
else{
//$result=mb_convert_encoding($str,'UTF-8',$code);/ /Convertエンコード $code から utf-8 エンコード
$result=iconv($code,"UTF-8",$str);
}
return $result; }
ただし、明らかな文字セットがいくつかあります。 gb2312 で書かれたファイルを取得すると文字化けします。専門家に質問したいのですが、curl で完全にトランスコードするにはどうすればよいですか?これは、gbk、gb2312、およびその他の一般的に使用される Web ページ形式を utf8 に変換することです。

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

ファイルのエンコーディングを変換してみてください。

ファイルのエンコーディングを変換してみてください。

Web ページのエンコーディングを変換しますか?


矛盾していますよね?

$code=mb_detect_encoding($str,array('ASCII','GB2312','GBK','UTF-8'));//文字列エンコードを検出

if($code=="CP936"){
$ result=$str;//GBK (CP936 は GBK) の場合はトランスコードされません
}else{
$result = iconv($code,"UTF-8",$str);//それ以外の場合は、 utf -8 に変換されます (utf-8 を utf-8 に変換しますか?)
}

矛盾していますか?

$code=mb_detect_encoding($str,array('ASCII','GB2312','GBK','UTF-8'));//文字列エンコードを検出

if($code=="CP936"){
$ result=$str;//GBK(CP936はGBK)の場合はトランスコードされません
}else{
$result = iconv($code,"UTF-8",$str);/...
しかし、それは淘宝網からのものです。Webページはgbkですが、取得するとEUC-CNになります。

EUC-CN は、GB 2312 の最も一般的に使用される表現方法です。ブラウザのエンコード表の「GB2312」は通常「EUC-CN」表記を指します。

これは鍵ではありません!

必要なのは、gbk、gb2312 およびその他の一般的な Web ページ形式を utf8 に変換することです
しかし、コードではこれが行われません

if(! mb_check_encoding($str, 'utf-8')) {
$str = mb_convert_encoding( $str,'UTF-8','gbk');

EUC-CN は GB 2312 の最も一般的に使用される表現方法です。ブラウザのエンコード表の「GB2312」は通常「EUC-CN」表記を指します。
これは鍵ではありません!

必要なのは、gbk、gb2312、その他の一般的な Web ページ形式を utf8 に変換することです

しかし、コードではこれが行われません

if(! mb_check_encoding($str, 'utf-8')) {
$str = mb_convert_encoding( $str,'UTF-8'...
うわー、ありがとう、老徐、みんながあなたをそう呼んでいるのを見たので、投稿してください!

私の問題は解決しました、ありがとう、老徐同志~

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