作者ZFang (无格调)
看板Python
标题[问题] chardet.detect 的 Big5 误判为 GB2312
时间Sat Mar 3 03:10:55 2012
请教各位大大,
最近我尝试把之前旧的纯文字档从 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)
1F:→ buganini:有可能是ambiguous 03/03 03:30
2F:→ buganini:单纯转换固定编码的话用piconv之类的就好啦? 为啥要判断? 03/03 03:31
3F:→ timTan:就我了解,detect是用猜的,会有猜错的机会。 03/03 12:34
4F:→ timTan:所以不能尽信chardect 03/03 12:34
5F:→ timTan:更正一下 不能讲猜,说'统计'比较正确 03/03 12:35
6F:→ ZFang:感谢各位的指导。本来是想成会自动判断,可用性比较高。 03/04 02:34
7F:→ ZFang:不过既然这作法不精准,那还是乖乖的用已知的编码转换~ 03/04 02:36