0

我正在编写一个程序来摄取一些 xml,但不幸的是,就字符集而言,其中存在一些不可避免的错误格式,xml 被标记为 utf-8,但我不确定我是否可以相信这一点。我很乐意忽略错误,但由于某种原因,我期望工作的方法不起作用并引发错误。这是我从标记为 utf-8 的 xml 文件中复制的字符和错误:

# -*- coding: utf-8 -*-
foo = ' '

print foo.encode('utf-8', errors='ignore')

-

Traceback (most recent call last):
  File "test.py", line 4, in <module>
    print foo.encode('utf-8', errors='ignore')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)

具体来说,我从很多空白字符中得到错误,我无法诊断问题,我似乎也无法ord()着手研究这个神秘字符以找出它是什么,所以我有点难过。

我正在使用 Python 2.7.2

更新:

我在这里粘贴的字符被转换为空格,这是一个 pasteb

http://pastebin.com/sP4Hb2Pi

4

2 回答 2

1

您可能希望将字符转换为 ASCII

unicode(foo, 'ascii', 'ignore')

如果没有,这里是如何无错误解码

unicode(foo, 'utf-8', 'ignore')

于 2013-09-10T15:25:06.557 回答
0

foo已经在 utf-8 中,因为它是一个字节字符串,并且您已经声明了该编码。

你的意思是foo.decode('utf-8')

于 2013-09-10T14:59:03.217 回答