Unicode是字符编码,好比英语和汉字的对应
例如"\u4f60\u597d" 对应汉字“你好”
这个对应是现实世界的对应,应该有本书就叫《unicode编码》,相当于一部字典,
问题是这个 \u4f60\u597d 无非被计算机识别,计算机只认识二进制,所以要把 \u4f60\u597d 转化为二进制码,然后就有了utf8,utf16这几种不同的转码方式。
例如utf8,\u4f60\u597d用utf8方式转码就是b'\xe4\xbd\xa0\xe5\xa5\xbd',3个字节代表一个汉字。
所以unicode到utf8是encode,使之转码
而utf8到unicode是解码,decode,消除转码,回到原来
我在python爬虫中遇到的问题是有时候,print出来的utf8格式,有的是unicode
如果屏幕输出的是是utf-8编码
例如
t=b'\xe4\xbd\xa0\xe5\xa5\xbd'
那么print(t.decode(“utf8”))即可
如果是unicode,
t=“\u4f60\u597d”
那么print(t.encode("utf8").decode("unicode_escape"))可以的到汉字
网友评论