【发布时间】:2012-03-27 13:41:47
【问题描述】:
我决定使用 cp866 来避免 unicode 65001 噩梦(请提供错误、补丁等...),因此我程序中的每个输出字符串都被编码为 cp866
# coding=utf-8
print 'Кабздец'.decode('utf-8').encode('cp866')
这一行将正确的字符串输出到 Windows 控制台,当然如果我在运行我的脚本之前设置了 chcp 866。
但是,我无法使诅咒以相同的编码显示。
stdscr.addstr("Кабздец".decode('utf-8').encode('cp866'))
这将输出垃圾。诅咒文档说我必须设置语言环境。所以我尝试使用
locale.setlocale(locale.LC_ALL, '')
这几乎没有变化,仍然是垃圾,我猜是因为我的语言环境是 CP1251。 locale.getpreferredencoding() 返回cp1251。
问题是如何使curses正确编码字符串。
我也试过了
locale.setlocale(locale.LC_ALL, 'rus')
这只会渲染不同的符号,而不是正确的符号。
【问题讨论】:
标签: python windows windows-7 python-2.6