UnicodeEncodeError:'ascii'编解码器无法编码位置17710中的字符u'\ xe7':序数不在范围内(128)

时间:2012-04-25 19:27:56

标签: python unicode character-encoding web-scraping

我正在尝试从archived web crawl打印字符串,但是当我这样做时,我收到此错误:

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

当我尝试打印unicode(page['html'])时,我得到:

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

我知道如何正确编码这个字符串,或者至少让它打印出来?感谢。

1 个答案:

答案 0 :(得分:20)

你需要编码你保存的unicode才能显示它,而不是解码它 - unicode是未编码的形式。您应始终指定编码,以便您的代码可移植。 “通常”的选择是utf-8

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

如果您没有指定编码,它是否有效将取决于您print的内容 - 您的编辑器,操作系统,终端程序等。