乱码这个问题可谓是难倒了许多的小白啊!其实乱码并不难解决,只是你得有个乱码解决的攻略,今天教你这个方法希望以后在也不会碰到这种情况了哈!
1.在python中使用中文
1.unicode (utf8-16), c854;
2.utf-8, e59388;
3.gbk, b9fe。
1.1windows控制台
1.2windows idle(在shell上运行)
1.3在idle上运行代码
1.4windows eclipse
在eclipse中处理中文更加困难,因为在eclipse中,编写代码和运行代码属于不同的窗口,而且他们可以有不同的默认编码。对于如下代码:
前四个print运行正常,最后两个print都会抛出异常:
可以看出eclipse控制台的缺省编码方式是gbk;所以不支持unicode也在情理之中。如果把文件中的coding修改成gbk,则可以直接打印gbk编码的str对象,比如s。
1.5从文件读取中文
在window下面用记事本编辑文件的时候,如果保存为unicode或utf-8,分别会在文件的开头加上两个字节
“/xff/xfe”和三个字节“/xef/xbb/xbf”。在读取的时候就可能会遇到问题,但是不同的环境对这几个多于字符的处理也不一样。
打开unicode格式的文件后,得到的字符串正确。这时候适用utf-16解码,能得到正确的unicdoe对象,可以直接使用。多余的那个填充字符在进行转换时会被过滤掉。
打开ansi格式的文件后,没有填充字符,可以直接使用。
结论:读写使用python生成的文件没有任何问题,但是在处理由notepad生成的文本文件时,如果该文件可能是非ansi编码,需要考虑如何处理填充字符。
1.6在数据库中使用中文
1.7在xml中使用中文
使用xml.dom.minidom和mysqldb类似,对生成的dom对象调用toxml方法得到的是unicode对象。如果希望输出utf-8文本,有两种方法:
1.使用系统函数
2.自己编码生成
通过阅读这篇文章是否有解决你现在所遇到的难题呢?