python编码问题

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'u4e2du6587'
 5 >>> print u'u4e2du6587'
 6 中文
 7 u''后面的内容是16进制的Unicode编码 可以看到Unicode一个汉字2个字节,u'中文'占用了4个字节
 8 >>> u'中文'.encode('utf-8')
 9 'xe4xb8xadxe6x96x87'
10 转换为utf8编码 可以看到一个汉字占用了3个字节
View Code

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

1 >>> print 'xe4xb8xadxe6x96x87'.decode('utf-8')
2 中文
View Code
原文地址:https://www.cnblogs.com/flex-/p/5543155.html