天天看點

php cp936轉utf8編碼轉換亂碼問題的解決方案

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);

    }

}