处理python中的unicode编码错误

时间:2013-09-10 14:53:28

标签: python unicode encode

我正在编写一个程序来摄取一些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

更新:

我在这里粘贴的角色被转换为空格,这是一个粘贴的

http://pastebin.com/sP4Hb2Pi

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

foo已经在utf-8中,因为它是一个字节字符串,你已经声明了这种编码。

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