平台: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?是否可以将这些字符打印出来.
stderr的python的默认编码?
Jiri.. 6
您的问题不是在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的限制,您无法使用其他可能需要的字符.
您的问题不是在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的限制,您无法使用其他可能需要的字符.