2012-04-25 6 views
9

archived web crawlから文字列を印刷しようとしていますが、 :私は、印刷unicode(page['html'])をしようとするとUnicodeEncodeError: 'ascii'コーデックは位置17710の文字u ' xe7'をエンコードできません:序数が範囲外(128)

print page['html'] 
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe7' in position 17710: ordinal not in range(128) 

私が取得:

print unicode(page['html'],errors='ignore') 
TypeError: decoding Unicode is not supported 

私は適切にこの文字列をコーディング、あるいは少なくともそれを印刷し得ることができますどのように任意のアイデア?ありがとう。

+4

http://farmdev.com/talks/unicode/ –

+2

これはPythonに関する最も一般的な質問です。 – KurzedMetal

答えて

20

あなたはエンコードあなたはそれを表示するには、保存されたUnicode、ないデコードそれに必要 - Unicodeはエンコードされていない形式です。コードを移植できるように、常にエンコーディングを指定する必要があります。 「いつもの」ピックはutf-8です:

print page['html'].encode('utf-8') 

あなたはそれがあなたprintがにするているものに依存します動作するかどうか、エンコーディングを指定しない場合 - など、エディタ、OS、端末用プログラム、

+2

+1 "通常のピック"。 http://www.utf8everywhere.org –

関連する問題