平台:WinXP SP2,Python 2.5.4.3(ActiveState发行版)
有人成功地在Python中编写出框线字符了吗? 当我尝试运行以下代码时:
print u'\u2500'
print u'\u2501'
print u'\u2502'
print u'\u2503'
print u'\u2504'
非常感谢您的帮助。我做错了什么?Python是否支持完整的Unicode?是否有可能打印出这些字符。
平台:WinXP SP2,Python 2.5.4.3(ActiveState发行版)
有人成功地在Python中编写出框线字符了吗? 当我尝试运行以下代码时:
print u'\u2500'
print u'\u2501'
print u'\u2502'
print u'\u2503'
print u'\u2504'
非常感谢您的帮助。我做错了什么?Python是否支持完整的Unicode?是否有可能打印出这些字符。
你的问题不在Python,而在于cmd.exe。必须设置支持UTF-8编码。不幸的是,将Windows命令行窗口(cmd.exe)切换到UTF-8“ Python兼容”方式并不是很容易。
你可以使用以下命令(在cmd.exe中)切换到UTF8:
chcp 65001
但是 Python (2.5) 不认识该编码。无论如何,您都需要设置支持 Unicode 的正确字体!
对于绘制框图,我建议使用旧的 DOS 代码页 437,因此在运行 Python 脚本之前需要设置它:
chcp 437
# -*- coding: utf-8 -*-
for i in range(0xB3, 0xDA):
print chr(i).decode('cp437'),
# without decoding (see comment by J.F.Sebastian)
print ''.join(map(chr, range(0xb3, 0xda)))
然而,您可以使用方框绘图字符,但是由于cp437的限制,您不能使用其他可能需要的字符。
chcp 437
)? - jfs这取决于您的终端支持的内容。如果它使用UTF-8,并且Python能够检测到它,那么它就可以正常工作。
>>> print u'\u2500'
─
>>> print u'\u2501'
━
>>> print u'\u2502'
│
>>> print u'\u2503'
┃
>>> print u'\u2504'
┄
chcp 65001
,它支持UTF-8……对吧? - Ignacio Vazquez-AbramsLookupError: unknown encoding: cp65001
- Gringo Suave打印它们将使用默认字符编码进行打印,这可能不是您终端的正确编码。
您尝试过先将它们转换为utf-8吗?
print u'\u2500'.encode('utf-8')
print u'\u2501'.encode('utf-8')
print u'\u2502'.encode('utf-8')
print u'\u2503'.encode('utf-8')
print u'\u2504'.encode('utf-8')
这对我在支持utf-8编码数据的Linux终端上有效。
Python 支持 Unicode。可以打印这些字符。
例如,请参见我的答案到"Python 的标准错误的默认编码是什么?",我展示了如何将Unicode打印到sys.stderr
(将其替换为sys.stdout
以获得裸print
语句)。
我使用Windows字符映射工具,在CMD和PowerShell中都显示正常。字体:Arial。 Python代码: Exe: print('■■■■■■■□□□□□□□') print('●●●●●●○○○○○○○○') 还有更多!