English 中文(简体)
晚间印刷功能现在与Dive Into-030书写时不同处理单体编码吗?
原标题:Does python s print function handle unicode differently now than when Dive Into Python was written?
  • 时间:2009-10-09 09:28:47
  •  标签:

我试图通过一些令人沮丧的困扰问题,回到基本面,去做我的工作。 在Dive Intoshed example 9.14 (here)中,我们有:

>>> s = u La Pexf1a 
>>> print s
Traceback (innermost last): File "<interactive input>", line 1, in ?
UnicodeError: ASCII encoding error: ordinal not in range(128)
>>> print s.encode( latin-1 )
La Peña

但在我的机器上,情况如下:

>>> sys.getdefaultencoding()
 ascii 
>>> s = u La Pexf1a 
>>> print s
La Peña

我不理解为什么这些不同。 谁?

最佳回答

sys.getdefaultencoding(),但sys.stdout.encoding。 如果你用<代码>LANG=C 发射标本 或将字典转至档案中,排版编码为<代码>。 ANSI_X3.4-1968。 另一方面,如果<代码>sys.stdout是终端,它将使用终端编码。

解释<条码>sys.getdefaultencoding()——在暗中将条码从条码转换成单体时使用。 举例来说,str(u La Pexf1a ),加上缺席的ASCII编码将失效,但经过修改的违约编码将将其编码编码编码为拉丁-1。 但是,如果确定违约编码是一种可怕的想法,那么你总是在希望从<条码>上<单条码>到<条码>时使用明确的编码。

问题回答

暂无回答




相关问题
热门标签