关于unicode在py界面输出的随笔小记

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"))可以的到汉字

你可能感兴趣的:(关于unicode在py界面输出的随笔小记)