ホームページ >バックエンド開発 >PHPチュートリアル >curlでキャプチャしたWebページの中国語文字化け問題について!
現在トランスコーディングにこの関数を使用しています:
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 ページのエンコーディングを変換しますか?
矛盾していますよね?
if($code=="CP936"){
$ result=$str;//GBK (CP936 は GBK) の場合はトランスコードされません
}else{
$result = iconv($code,"UTF-8",$str);//それ以外の場合は、 utf -8 に変換されます (utf-8 を 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」表記を指します。
これは鍵ではありません!
しかし、コードではこれが行われません
if(! mb_check_encoding($str, 'utf-8')) {
$str = mb_convert_encoding( $str,'UTF-8'...
うわー、ありがとう、老徐、みんながあなたをそう呼んでいるのを見たので、投稿してください!
私の問題は解決しました、ありがとう、老徐同志~