2024-10-02 20:33:43 发布
网友
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 38: ordinal not in range(128)
我正在下载一个网站,然后打印它的内容…简单。 我一定要编码吗?在
从utf-8开始。您下载的网站可能有不同于ANSI的字符集,并且这些额外字符无法在控制台上打印。在
所以在你做print text做print text.encode('utf-8')的地方。在
print text
print text.encode('utf-8')
确保您已经将Putty配置为接受UTF-8编码的数据。在
将内容转换为标准输出可能会有问题,因为Python通常不知道系统使用的是什么字符编码。面对这一点,python2假设了最保守的选择,usascii。因此,当您试图打印一个字符串,其中包含不是ASCII格式的字符,比如U+2019智能引号’,它会给您这个错误。在
’
在python3中,sys.stdout.encoding的默认字符集猜测是UTF-8。如果您确定您的标准输出(在您的例子中是PuTTY)应该接受UTF-8,那么是的,您可以显式地对其进行编码:
sys.stdout.encoding
print content.encode('UTF-8')
从utf-8开始。您下载的网站可能有不同于ANSI的字符集,并且这些额外字符无法在控制台上打印。在
所以在你做
print text
做print text.encode('utf-8')
的地方。在确保您已经将Putty配置为接受UTF-8编码的数据。在
将内容转换为标准输出可能会有问题,因为Python通常不知道系统使用的是什么字符编码。面对这一点,python2假设了最保守的选择,usascii。因此,当您试图打印一个字符串,其中包含不是ASCII格式的字符,比如U+2019智能引号
’
,它会给您这个错误。在在python3中,
sys.stdout.encoding
的默认字符集猜测是UTF-8。如果您确定您的标准输出(在您的例子中是PuTTY)应该接受UTF-8,那么是的,您可以显式地对其进行编码:相关问题 更多 >
编程相关推荐