python编码问题

南笙酒味 提交于 2020-03-24 23:52:20
SCII编码是1个字节,而Unicode编码(汉字)通常是2个字节。一个字节8位(bit)
如果统一成Unicode编码,英文字母就会占用2个字节,造成空间浪费。从而出现了utf8可变编码,utf8编码中。英文字母编码占一个字节,汉字通常3个字节。如果传输的文本汉字和英文混用,使用utf8能节省空间。
在计算机内存中使用Unicode编码,需要保存为文件或者传输就装换为utf8编码。
浏览网页的时候,服务器会把Unicode内容装换为utf8在传输到浏览器
1 Python提供了ord()和chr()函数,可以把字母和对应的ASCII码相互转换
1 >>> ord('A')
2 65
3 >>> chr(65)
4 'A'
View Code

2 Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:

 1 >>> print u'中文'
 2 中文
 3 >>> u'中文'
 4 u'\u4e2d\u6587'
 5 >>> print u'\u4e2d\u6587'
 6 中文
 7 u''后面的内容是16进制的Unicode编码 可以看到Unicode一个汉字2个字节,u'中文'占用了4个字节
 8 >>> u'中文'.encode('utf-8')
 9 '\xe4\xb8\xad\xe6\x96\x87'
10 转换为utf8编码 可以看到一个汉字占用了3个字节
View Code

3 反过来,把UTF-8编码表示的字符串'xxx'转换为Unicode字符串u'xxx'用decode('utf-8')方法

1 >>> print '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
2 中文
View Code

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!