1. 先看这里
  2. 再看这里

Python2默认的编码是ACSII编码。

编码:

1
encode(obj, encoding=None, errors=None)

解码:

1
decode(self, encoding=None, errors=None)
1
2
3
4
5
6
>>> a = "中"
>>> a
'\xd6\xd0'
>>> len(a)
2
>>>

变量a引用了一个字符串。字符串”中”在构造时被编码为了

引用廖学锋的一张图。Windows记事本的编码。

UTF-8:可变长编码

纯英文的str可以用ASCII编码为bytes,含有中文的str可以用UTF-8编码为bytes。
含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错.

Python2默认的编码是ACSII编码,直接编码中文会报错。

1
2
3
4
5
>>> a = "你好"
>>> a.decode()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 0: ordinal not in range(128)


Python     

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!