码迷,mamicode.com
首页 > 其他好文 > 详细

py8.29

时间:2016-08-30 17:45:19      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

以Unicode表示的str通过encode()方法可以编码为指定的bytes,例如:

>>> ABC.encode(ascii)
bABC
>>> 中文.encode(utf-8)
b\xe4\xb8\xad\xe6\x96\x87
>>> 中文.encode(ascii)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: ascii codec cant encode characters in position 0-1: ordinal not in range(128)

以其中\xe4为例,0xe4对应十进制数位228,对应二进制为1110 0100,八位一个字节。即encode让变量一个字节一个字节的显示。

 

我们从网络或磁盘上读取字节流,读到的数据就是bytes。 然后要把bytes转换为str。

>>> bABC.decode(ascii)
ABC
>>> b\xe4\xb8\xad\xe6\x96\x87.decode(utf-8)
中文

关于encode、decode以及什么时候是unicode,什么时候是ascii、utf-8,可以这么理解:在内存里是str,是unicode,是字母是中文等。在传输时,是bytes,是作为字母的bytes(因为一个字母占一个字节,一个\xe4也是一个字节),是十六进制表示的bytes。

 

占位符:%d→整数    %s→字符串    %f→浮点数    %x→十六进制整数

 

py8.29

标签:

原文地址:http://www.cnblogs.com/inspiring26/p/5822371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!