看板 Python 關於我們 聯絡資訊
請教各位大大, 最近我嘗試把之前舊的純文字檔從 Windows 裡搬到 Ubuntu。 因為一些理由,想把檔案都換成 UTF-8 編碼。 於是寫了隻 python 簡單利用 Ecd = chardet.detect(Txt)['encoding']; 和 Txt = unicode(Txt, Ecd, 'ignore').encode('utf-8', 'ignore'); 批次將檔案轉編。 但是我發現在偵測編碼時,居然有些檔案會判斷為 GB2312 而不是預期的 Big5。 文字檔都是我在使用 Windows 的時期撰寫的,那時根本還不知道選編碼方式, 所以應該都是 Big5 才對。 要請問各位,這樣偵測編碼是否不正確,或者不夠嚴謹? 是否還有其它的偵測方式? 還在持續摸索 python,希望有天能寫出一些有用的程式來 XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.139.175 ※ 編輯: ZFang 來自: 59.115.139.175 (03/03 03:12)
buganini:有可能是ambiguous 03/03 03:30
buganini:單純轉換固定編碼的話用piconv之類的就好啦? 為啥要判斷? 03/03 03:31
timTan:就我了解,detect是用猜的,會有猜錯的機會。 03/03 12:34
timTan:所以不能盡信chardect 03/03 12:34
timTan:更正一下 不能講猜,說'統計'比較正確 03/03 12:35
ZFang:感謝各位的指導。本來是想成會自動判斷,可用性比較高。 03/04 02:34
ZFang:不過既然這作法不精準,那還是乖乖的用已知的編碼轉換~ 03/04 02:36