2013年1月29日星期二

文件字符编码学习总结

在linux下处理win系统导出的csv文件时经常会遭遇中文‘被乱码’,这几天集中学习了一下字符编码的知识,总结如下。

主要的知识来源是博客园AstralWind的《Python字符编码详解》(页面存档)。另外一部来源参考啄木鸟《可爱的Python》中的一章页面存档)。

比较有用的一张思维导图(via 可爱的Python)

cday-1-encode

 

参考工具:

Chardet :当前版本2.1.1。Python库,用来侦测文件字符编码。

-安装 >>sudo easy_install chardet

-使用 >>python ..some/path/python/site-packages/chardet/test.py /target/path/file.file      红色部分请用chardet真实安装目录以及被测文件真实目录替换。

- 结果 会在stdout返回类似 “utf-8 with confidence 0.99” 的值,表示被测文件字符集以及置信度。

涉及标准库:

codecs :Python标准库

如果只是字符串转换转换unicode或其他编码方式,只需要使用 ‘’.decode(‘gb2312’).encode(‘utf-8’) 这样的字符串方法来转换字符串编码。