[PHP]讀取文字檔,中文亂碼的問題

之前寫的網頁都是以英文為主,所以沒有中文的問題
最近開始需要處理中文
當然網頁都是用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
評論: 1 | 引用: 0 | 閱讀: 14173 | 回到頁首