错误 :: UnicodeDecodeError
我遇到了这个问题:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 104: ordinal not in range(128)
我正在使用 intgereproparty
、stringproparty
和 datetimeproparty
。
4 个回答
0
Python 默认使用 ASCII 编码。如果你处理的字符不在 ASCII 范围内,就需要在代码中指定编码方式。
一种方法是在代码的开头设置编码。
下面这段代码在文件顶部设置了编码为 Latin-1(其中包括 0xb0
):
#!/usr/bin/python
# -*- coding: latin-1 -*-
import os, sys
...
1
你正在尝试把Unicode数据(可能是带有重音符号的文字)放进一个ASCII字符串里。
你可以使用Python的codecs模块来打开一个用UTF-8编码的文本文件,然后把Unicode数据写进去。
.encode
这个方法也可能会有帮助(比如u"õ".encode('utf-8')
)。
1
这是因为 0xb0
(十进制176)在ASCII编码中不是一个有效的字符代码,ASCII只定义了0到127之间的值。
你需要检查一下这个字符串是从哪里来的,并使用正确的编码方式。
如果你需要更多帮助,可以把代码发出来。