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'
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个字节
3 反过来,把UTF-8编码表示的字符串'xxx'转换为Unicode字符串u'xxx'用decode('utf-8')方法
1 >>> print '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') 2 中文
来源:https://www.cnblogs.com/flex-/p/5543155.html