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を使用しています

アップデート:

ここに貼り付けた文字はスペースに変換されます。

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 に答える