[PHP]讀取文字檔,中文亂碼的問題
作者: fase 日期: 2012-10-29 17:37
之前寫的網頁都是以英文為主,所以沒有中文的問題
最近開始需要處理中文
當然網頁都是用utf-8編碼
這部分是沒有什麼問題
但是讀檔進來的話
那就會出現問題了
最主要是檔案的編碼格式
由於我是要讀取csv來匯入資料庫
發現不同的編碼格式有不同的狀況
於是整理了部分程式碼,如下
$contents = file_get_contents($File_Path);
$encoding = mb_detect_encoding($contents, array('ASCII','EUC-CN','BIG-5','UTF-8'));
if ($encoding != false) {
$contents = iconv($encoding, 'UTF-8', $contents);
} else {
$contents = mb_convert_encoding($contents, 'UTF-8','Unicode');
}
主要是先讀取檔案,再偵測字串的編碼
再利用iconv和mb_convert_encoding來轉碼
當然是轉成網頁用的utf-8了,再看程式要如何處理了
雖然其它讀入的編碼並不一定是unicode
但這邊只是假裝是unicode來處理
因為其它的編碼也沒特地去了解
轉入基本上是這樣,轉出的話,就要看是要用什麼軟體開啟
要轉成什麼樣的編碼,及是否要寫入BOM
這些就自行去搜尋其它網頁了
另外的參考資料是PHP裏mbstring所支援的編碼(連結)
[PHP] 貼文到user的facebook塗鴨牆(feed/wall) (2012-12-26 17:23)
空房查詢顯示系統-給旅館民宿業者用 (2012-07-12 10:07)
[PHP]將資料轉成Word(PHPWord) (2011-10-12 15:42)
分享Zen Cart 1.3.9h繁體中文版 (2011-04-22 17:27)
[PHP] readfile (2010-11-03 17:46)
[PHP] uploadprogress的使用 (2010-07-01 11:42)
[phpBB3] 網站登入整合 (2010-03-11 14:09)
[PHP] uploadprogress功能在Windows下安裝 (2010-01-20 11:13)
[PHP] array_multisort (2009-12-24 17:07)