php cp936轉utf8中文編碼轉換漢字亂碼問題的解決方案
今天遇到個問題,
中文字元串 如 åç°ä»£è½»å¥¢å
¨éåç
需要轉換為 UTF8,就調用了PHP的函數,
mb_convert_encoding($str, 'UTF-8', 'CP936');
轉換後的結果卻是:
氓聬聨莽聨擄盲祿攏貓陸祿氓樓壟氓聟簍茅聯聹氓聬聤莽聛爐
實際需要的結果是:
後現代輕奢全銅吊燈
遇到這一問題,百度了一下,發現沒找到解決方法
最好自己嘗試,解決了,記錄分享給有需要的你,防止再次走坑!
解決方法如下:
使用 iconv('utf-8', 'latin1//IGNORE', $str);
附:
function toUtf8($str) {
$encode = mb_detect_encoding($str, array('CP936', "ASCII","GB2312","GBK",'UTF-8','BIG5'));
if ($encode == 'UTF-8') {
return $str;
} elseif ($encode == 'CP936') {
return iconv('utf-8', 'latin1//IGNORE', $str);
} else {
return mb_convert_encoding($str, 'UTF-8', $encode);
}
}