phpexcel 讀取中文gbk數據的csv在linux服務器下亂碼的解決方法.

在作一個phpexcel導入csv數據時,出現詭異現象, 本地windows下調試順暢, 無亂碼, 發佈到linux服務器後出現亂碼了.  各類排查, 初步覺得是iconv編碼轉換的問題, 各類編碼嘗試, gbk, gb2312, utf8, asii等都不行. 最後看到了其使用的 fgetcsv函數. php手冊中有這麼一句備註: Note: 該函數對區域設置是敏感的。好比說 LANG 設爲 en_US.UTF-8 的話,單字節編碼的文件就會出現讀取錯誤。  一看服務器phpinfo的LANG, 恰好就是en_US.UTF-8 . 我次奧. 頓悟了. 解決方法, 程序里加 setlocale(LC_ALL, 'zh_CN'); setlocale(LC_ALL, 'zh_CN'); $objExcelReader = PHPExcel_IOFactory::createReader('CSV'); $objExcelReader->setInputEncoding('GBK'); $objExcelReader->setDelimiter(','); $objPHPExcel = $objExcelReader->load($path);
相關文章
相關標籤/搜索