平台:WinXP SP2、python 2.5.4.3。 (活跃状态分布)
有谁写成功了盒子绘图字符 http://en.wikipedia.org/wiki/Box_drawing_characters在Python中?
当我尝试运行这个时:
print u'\u2500'
print u'\u2501'
print u'\u2502'
print u'\u2503'
print u'\u2504'
所有提示均表示赞赏。我究竟做错了什么 ? python 支持完整的 unicode 吗?是否有可能打印这些字符?
Related
- python stderr 的默认编码? https://stackoverflow.com/questions/637396/default-encoding-for-python-for-stderr
你的问题不在于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
然后您可以将 cp437 编码的字符直接打印到 stdout 或将字符解码为 unicode 并打印 unicode,尝试以下脚本:
# -*- 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 的限制,您不能使用您可能需要的其他字符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)