wps和微軟office的excel文档編碼默認不是UTF-8, 筆者爲了處理這個問題, 萌試將ANSI直轉成UTF-8, 遇到報錯
warning: iconv(): Wrong encoding, conversion from "ANSI" to "UTF-8" is not allowed
我們遇到的業務場景是: 程序邏輯和數據庫内置的編碼都是UTF-8的, 但外部供應商導進來的文档說不準是什麽編碼, 但已知是有幾個可能的編碼的。這個場景我們用到了php mbstring的一個自帶函數, 先拿源代碼舉例:
$encode = mb_detect_encoding($str, array('ASCII', 'UTF-8', "GB2312", "GBK"));
這裡返回的$encode就是編碼值, 類型爲字符串。把這個返回的結果直接塞到iconv裡面:
$converted_str = iconv($encode, 'UTF-8', $str);
拿到的$converted_str就是轉換完的UTF-8字符串。