[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所支援的編碼(連結)

引用通告地址: http://www.fase.idv.tw/blog/trackback.php?tbID=113&extra=36d95d
標籤: PHP
評論: 1 | 引用: 0 | 閱讀: 14174
  • 1 
感謝大大 [ 2020-08-21 15:44 網址 | 回覆 | 編輯/刪除 ]
謝謝您的文章,我已經卡了兩天的問題被解決,感謝您
  • 1 
發表評論
暱 稱(*): 密 碼:
網 址: E - mail:
驗證碼(*): 驗證碼圖片
請用滑鼠點選輸入
選 項:
頭 像:
內 容(*):