UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 38: ordinal not in range(128)
我正在下载一个网站,然后打印其内容......简单。 我必须以某种方式对其进行编码吗?
答案 0 :(得分:2)
尝试使用utf-8开始。您下载的网站可能具有与ANSI不同的字符集,并且这些额外的字符无法在控制台上打印。
所以在print text
执行print text.encode('utf-8')
的地方。
答案 1 :(得分:0)
确保将Putty配置为接受UTF-8编码数据。
答案 2 :(得分:0)
print
标准输出的内容可能会有问题,因为Python通常不知道系统使用的是什么字符编码。面对这一点,Python 2假设最保守的选择,US ASCII。因此,当您尝试打印包含非ASCII字符的字符串时,例如U + 2019智能引用’
,它会给您出错。
在Python 3中,sys.stdout.encoding
的默认字符集猜测是UTF-8。如果您确定您的标准输出(即您的情况下的PuTTY)应该接受UTF-8,那么您可以明确地对其进行编码:
print content.encode('UTF-8')