我已经在这个问题上拔了几个小时了。
我想使用django' makemessages命令生成一个消息文件,它在Linux环境中工作正常,它实际上以理智的方式处理区域设置。但是,当我在Windows下尝试相同的操作时,每次python尝试打开文件时,它都会假定它是以cp932
(SHIFT-JIS)编码的,这会导致各种各样的破坏。
手动将encoding='utf-8'
添加到每个open
来电都有效,但这并不是解决问题的好方法。有没有办法强制open
使用特定的默认编码?
sys.getdefaultencoding()
返回' utf-8',由于某些神秘的原因,此设置未得到尊重cp65001
这是我的python版本字符串:
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:06:53) [MSC v.1600 64 bit (AMD64)] on win32
编辑:我注意到locale.getpreferredencoding()
返回cp932
,所以我想找到一个utf-8
作为默认值的Windows区域设置就可以了。这样的事情是否存在?
答案 0 :(得分:2)
试试这个
import locale
locale.setlocale(locale.LC_ALL, 'en_US.utf-8')