【发布时间】:2012-05-25 10:03:59
【问题描述】:
我正在这样做:
word.rstrip(s)
其中 word 和 s 是包含 unicode 字符的字符串。
我明白了:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)
有一个错误报告,该错误在某些 Windows Django 系统上发生。不过,我的情况似乎与那个案子无关。
可能是什么问题?
编辑:代码是这样的:
def Strip(word):
for s in suffixes:
return word.rstrip(s)
【问题讨论】:
-
显示更多代码 - 不要只是告诉我们“
word和s是包含 unicode 字符的字符串”,向我们展示一个示例,我们可以复制并粘贴到 python 中并查看它的中断.另外,这是什么Python版本?在 Py2 和 Py3 之间,字符串和 unicode 的行为非常不同。 -
如果您使用的是 py2,
unicode.rstrip(word, s)会发生什么。 -
@lvc:首先,我使用的是 Python 2。当我打印 word 和 s 的值时,我看到它们分别包含 'কিনেও' 和 'ি'。这只是一个例子。它们可以包含各种值。在这种特殊情况下,不应剥离任何内容。 unicode.rstrip(word, s) 给出相同的错误。我的代码如编辑所示。
-
将额外信息编辑到问题中,不要放在人们可能会错过的 cmets 中。另外,bit.ly/unipain
-
请注意,
rstrip会从其参数中的字符串末尾去除 字符。所以'aaabbbcccecb'.rstrip('ecb')的结果是'aaa'而不是'aaabbbccc'。
标签: python unicode internationalization