python中文编码问题(decode('gbk').encode('utf-8')和decode('utf-8').encode('gbk')这对好基友)

时间:2023-01-04 19:16:24

    想必每个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')

这样在后面的操作中才能避免出错。