我正在使用unicode变量并替换一些字符,但是当我尝试处理某个值时会引发UnicodeDecodeError的错误,当我在python的文件开头设置编码时。
我尝试了这个编码:iso-8859-15,cp1251,我看了一下这个,但是当变量的值包含这个字符时却没有:`
在终端上有效:
a='Don\xb4t dream it\xb4s over'
a = a.replace("\xb4","'")
print a
output: Don't dream it's over
为什么它在终端中有效但在我的python文件中却没有?。
答案 0 :(得分:0)
代码对我有用。这就是我所做的:
将以下代码复制到文件中,并将其命名为test.py
a='Don\xb4t dream it\xb4s over'
a = a.replace("\xb4","'")
print a
运行test.py python ./test.py
,这是输出
Don't dream it's over
我的python版本是Python 2.7.3
答案 1 :(得分:0)
您需要从正确的代码页解码为Unicode。然后,如果您需要在另一个代码页(例如UTF-8)中,则可以对其进行重新编码。当您使用print
时,Python会尝试自动将其编码到终端的代码页。
>>> a = a.decode('iso-8859-1')
>>> print a
Don´t dream it´s over
编辑:尝试破译实际问题很困难。也许你正试图从文件中读取文本,那是什么不起作用?再次了解文件的编码很重要。许多现代文件使用UTF-8编码。
a = f.readline()
a = a.decode('utf-8')
print a