我想通過mb_detect_encoding()函數動態獲取某個字符的編碼集,再通過iconv進行編碼轉換,但是mb_detect_encoding()判斷的編碼類型不準,導致iconv()失效或亂碼。//片段if (is_string($k)) { $encoding = getEncoding($k); $k = iconv($encoding, "utf-8", $k);
}//獲取編碼集function getEncoding($data)
{
return mb_detect_encoding($data, array("ASCII","GB2312","GBK",'BIG5','UTF-8'));
}//測試$k = "哈哈";$encoding = getEncoding($k);
var_dump($encoding,$k);$k = iconv($encoding, "utf-8", $k);
var_dump(getEncoding($k),$k);exit;//輸出:string(5) "CP936" string(6) "哈哈" string(5) "CP936" string(9) "鍝堝搱"
2 回答

回首憶惘然
TA貢獻1847條經驗 獲得超11個贊
老哥,我不是要抬杠哈,比如我輸入了一串英文,獲取字符集結果為ASCII,然后通過iconv轉成utf-8了,后面應該返回utf-8才對。為什么還是返回的ASCII呢?我是比較疑惑的這一點。
- 2 回答
- 0 關注
- 4207 瀏覽
添加回答
舉報
0/150
提交
取消