Python UnicodeDecodeError

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python UnicodeDecodeError相关的知识,希望对你有一定的参考价值。

UnicodeDecodeError

UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe9 in position 0: ordinal not in range(128)

(Python2.7)

 

原因:

str  -> decode(the_coding_of_str) -> unicode
unicode -> encode(the_coding_you_want) -> str

unicode encode(编码)后 成『字节』,组成『字节串』,即 str

 

>>> u中文.encode(utf-8)
\xe4\xb8\xad\xe6\x96\x87
>>> len(u中文.encode(utf-8))
6 
>>> type(u中文)
<type unicode>

如果对 str 进行 encode,对 unicode 进行 decode,会报错。

>>> 中文.encode(utf-8)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: ascii codec cant decode byte 0xe4 in position 0: ordinal not in range(128)

>>> u中文.decode(utf-8)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: ascii codec cant encode characters in position 0-1: ordinal not in range(128)

 

以上是关于Python UnicodeDecodeError的主要内容,如果未能解决你的问题,请参考以下文章

Python的pymssql库中的UnicodeDecodeError

python2 当中 遇到 UnicodeDecodeError UnicodeDecodeError: 'ascii' codec can't decode byte 0xe

Python UnicodeDecodeError

切换到 Python 3 导致 UnicodeDecodeError

解决问题解决python安装模块时UnicodeDecodeError

Python读取内容UnicodeDecodeError错误