1

我正在使用 unicode 变量并替换一些字符,但是当我尝试处理某个值时,当我在 python 文件的开头设置编码时,它会引发 UnicodeDecodeError 错误。

我试过这个编码: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 文件中无效?

4

2 回答 2

0

代码对我有用。这是我所做的:

  1. 将以下代码复制到文件中,并将其命名为test.py

    a='Don\xb4t dream it\xb4s over'
    a = a.replace("\xb4","'")
    print a
    
  2. 运行 test.py python ./test.py,这是输出

    Don't dream it's over
    
  3. 我的 python 版本是 Python 2.7.3

于 2013-09-22T19:23:26.117 回答
0

您需要从正确的代码页解码为 Unicode。然后,如果您在另一个代码页(例如 UTF-8)中需要它,您可以重新编码它。当您使用printPython 时,会尝试自动将其编码到终端的代码页。

>>> 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
于 2013-09-22T19:33:20.023 回答