python的编码问题,一个小例子让人很困惑

2025-02-27 15:48:18
推荐回答(2个)
回答1:

其实,字典中的\uxxxx 或者 \x.. 之类 就是utf-8编码,经过解码就是汉字了


print 打印的字符是自动解码的。(根据第一行的 coding:utf-8)

print 打印的字典、列表之类的对象,一般没经过解码


如果你要输出解码的汉字,处理方法:

一,对每个scrapy抓取的数据都进行for循环decod

a={1:"你好",2:"谢谢",3:"对不起",4:"hi"}
for k in a.keys():  
    print k,a[k].decode("utf-8")


二,使用json.dumps

a={1:"你好",2:"谢谢",3:"对不起",4:"hi"}
import json
print json.dumps(a, encoding='UTF-8', ensure_ascii=False)

回答2:

python对中文使用unicode编码,满足跨语言、跨平台进行文本转换、处理的要求。爬虫抓取的内容可以直接以此形式入库,如果数据库配置正确,会正常显示中文的。另外在抓取时记得设定字符编码为utf8,以免入库出现乱码。