Python3为什么输出\xe3,一个额外的字符?

2024-09-28 03:18:19 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么Python在输出中添加\xe3

>>> b'Transa\xc3\xa7\xc3\xa3o'.decode('utf-8')
'Transaç\xe3o'

预期值为:

^{pr2}$

有关我的环境的更多信息:

>>> import sys
>>> print (sys.version)
3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AMD64)]   
>>> sys.stdout.encoding
'cp437'

这是在控制台2+Powershell下。在


Tags: import信息环境versionsysutfprintdecode
1条回答
网友
1楼 · 发布于 2024-09-28 03:18:19

您需要使用支持所有要打印字符的控制台或终端。在

在交互式控制台中打印时,字符将被编码到控制台的正确编解码器中,任何不支持的字符都使用^{} error handler来保持输出可读性,而不是引发异常。这是默认^{} function的一个功能:

^{bq}$

您的控制台可以处理ç,但不能处理{}。有几个编解码器包含第一个字符而不是最后一个字符;您使用的是IBM codepage 437,但它绝不是唯一的一个。在

如果您在标准的Windows控制台(cmd.exe)中运行Python,那么请注意Python、Unicode和该控制台不能很好地混合使用。您可以安装^{} package,使python3使用Windows api更好地输出Unicode文本;您需要确保您的字体仍然能够显示Unicode文本。在

我不确定这个软件包是否与其他Windows外壳兼容;你的里程可能会有所不同。在

相关问题 更多 >

    热门问题