2012-04-25 12 views
9

archived web crawl'dan bir dize yazdırmaya çalışıyorum, ancak bu hatayı aldığımda : Ben baskı unicode(page['html']) çalıştığınızdaUnicodeEncodeError: 'ascii' codec'i 17710 konumunda u ' xe7' karakterini kodlayamaz: ordinal aralıkta (128)

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

alıyorum:

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

düzgün yazdırmaya olsun en azından bu dizeyi kodu veya nasıl sence? Teşekkürler. unicode kodlanmamış şeklidir -

+4

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

+2

Bu, en yaygın python sorusudur. "Olağan seçim" için – KurzedMetal

cevap

20

Sen kodlamak bunu göstermek için kaydedilen unicode değil çözmek o gerekmektedir. Her zaman bir kodlama belirtmelisiniz, böylece kodunuz taşınabilir olacaktır. "Olağan" seçim utf-8 geçerli:

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

bunu size ing print ne olduğuna bağlı olacaktır çalışır olsun veya olmasın, bir kodlama belirtmez yoksa - vb editör, OS, terminal programı,

+2

+1. http://www.utf8everywhere.org –

İlgili konular