想必每个Python新手都会遇到Python编码的问题,特别是使用到汉字的时候。UTF-8编码是比较通用的编码方式,它可以输出中文,而Python2中默认的编码方式一般是GBK,所以往往我们期望在console下输出汉字时都是乱码,或者当raw_input()输入汉字后,在后面操作中遇到问题的现象(在爬虫程序中尤为常见)。
而仔细观察,程序中解析出的汉字通常是:'\xe4\xb8\xad\xe5\x9b\xbd' 这种形式的(GBK编码),输出后就变成乱码了,所以应该先将其GBK解码,然后再UTF-8编码,然后再输出:
decode('gbk').encode('utf-8')
这样就能输出汉字了。
而在爬虫程序中手动输入一个汉字时通常要先对其UTF-8解码,然后再GBK编码:
decode('utf-8').encode('gbk')
这样在后面的操作中才能避免出错。