您的终端或控制台无法让Python知道它支持UTF-8。
没有这一
from __future__ importunipre_literals行,您正在构建一个字节字符串,其中包含UTF-8编码的字节。使用该字符串,您将构建一个
unipre字符串。
sys.stdout不变。首先将
unipre字符串编码为字节,然后Python进行查询
sys.stdout.encoding。如果您的系统不能正确告诉Python它支持什么编解码器,则默认为使用ASCII。
您的系统无法告诉Python使用哪种编解码器;
sys.stdout.encoding设置为ASCII,并且对
unipre值进行编码以打印失败。
您可以通过在打印时手动编码为UTF-8来验证这一点:
# encoding: utf-8from __future__ import unipre_literalsname = 'helló wörld from example'print name.enpre('utf8')并且您也可以通过创建Unipre文字而不使用
from __future__import语句来重现该问题:
# encoding: utf-8name = u'helló wörld from example'print name
u'..'unipre文字也在哪里。
没有关于您的环境的详细信息,很难说出解决方案是什么。这在很大程度上取决于所使用的操作系统和控制台或终端。



