使用 Python 3 及其 Unicode 字符串,只要您遵循以下规则,您的原始代码应该可以正常工作:
- 以支持字符的编码保存您的文件。
#coding: <encoding>
如果不是 UTF-8 默认值,则通过声明源编码。
- 默认控制台编码支持字符。
- 控制台字体支持字符字形。
请注意,coding
我在下面添加的语句是可选的,因为utf8
它是 Python 3 上的默认设置。只需确保您的文件实际上以正确的编码保存即可。
# coding: utf8
print('╔════════════════════════════════════╗')
print('║ Hello World! ║')
print('╚════════════════════════════════════╝')
我的 Windows 控制台上的输出(代码页 437,Consolas 字体):
╔════════════════════════════════════╗
║ Hello World! ║
╚════════════════════════════════════╝
我的 PythonWin IDE 上的输出(UTF-8 编码,以及通常的 Linux 默认值,加上 Courier New 字体):
╔════════════════════════════════════╗
║ Hello World! ║
╚════════════════════════════════════╝
注意chcp 65001
(UTF-8) 在 Windows 和/或 Python 3 上是错误的:
╔════════════════════════════════════╗
��═══════════════════════╗
�══════════════╗
�════════╗
�════╗
��═╗
��
║ Hello World! ║
��
╚════════════════════════════════════╝
��═══════════════════════╝
�══════════════╝
�════════╝
�════╝
��═╝
��
还不需要注意setdefaultdecoding
,即使在 Python 2 上也是如此。Unicode 字符串不是默认值。此代码适用于 Python 2.X和Python 3.3 及更高版本,因为 Python 3.3 添加了可选u''
语法以帮助移植 Python 2.X 代码:
# coding: utf8
print(u'╔════════════════════════════════════╗')
print(u'║ Hello World! ║')
print(u'╚════════════════════════════════════╝')