平台:WinXP SP2,python 2.5.4.3.(activestate distribution)
有没有人成功地在python中写出box drawing characters?当我尝试运行这个:
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 distribution)
有没有人成功地在python中写出box drawing characters?当我尝试运行这个:
print u'\u2500'
print u'\u2501'
print u'\u2502'
print u'\u2503'
print u'\u2504'
所有的提示都很感激。我做错了什么?Python支持完整的unicode吗?有没有可能让那些字符打印出来。
5条答案
按热度按时间kupeojn61#
你的问题不是在Python中,而是在cmd.exe中。它必须设置为支持UTF-8。不幸的是,将Windows控制台(cmd.exe)切换到UTF-8“Python兼容”方式并不容易。
您可以使用命令(在cmd.exe中)切换到UTF8:
但是Python(2.5)不能识别这种编码。无论如何,你必须设置正确的字体来支持unicode!
对于框绘制,我建议使用旧的dos代码页437,所以你需要在运行python脚本之前设置它:
然后你可以直接将cp 437编码的字符打印到stdout,或者将字符解码为unicode并打印unicode,试试这个脚本:
但是,你可以使用框绘制字符,但由于cp 437的限制,你不能使用你可能需要的其他字符。
luaexgnf2#
这取决于你的终端支持什么。如果它使用UTF-8,并且Python可以检测到它,那么它就可以正常工作。
2j4z5cfb3#
打印它们将使用默认的字符编码进行打印,这可能不是您的终端的正确编码。
你有没有试过先把它们转换成utf-8?
这对我在linux上支持utf-8编码数据的终端是有效的。
jaql4c8m4#
Python支持Unicode。可以打印这些字符。
例如,请参阅我对"Default encoding for python for stderr?"的回答,其中我展示了如何将Unicode打印到
sys.stderr
(对于裸print
语句,将其替换为sys.stdout
)。n3schb8v5#
我使用的是Windows字符Map工具,在CMD和PowerShell中都显示正常。字体:Arial. Python代码:Exe:Print('■ ■■ ■■■□ □ □ □ □ □')Print('● ● ● ● ○○○ ○ ○ ○○○')等等!