加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows下的Python 3的open()的默认编码. sys.getdefaultencodin

发布时间:2020-12-14 02:50:54 所属栏目:Windows 来源:网络整理
导读:我已经在这个问题上拔了几个小时了. 我有一个消息文件,我想使用django的makemessages命令生成,它在Linux环境中工作正常,它实际上以一种理智的方式处理语言环境设置.但是,当我在Windows下尝试相同的事情时,每次python尝试打开文件时,它都会假定它是用cp932(SH
我已经在这个问题上拔了几个小时了.

我有一个消息文件,我想使用django的makemessages命令生成,它在Linux环境中工作正常,它实际上以一种理智的方式处理语言环境设置.但是,当我在Windows下尝试相同的事情时,每次python尝试打开文件时,它都会假定它是用cp932(SHIFT-JIS)编码的,这会导致各种各样的破坏.

手动将encoding =’utf-8’添加到每个打开的调用都有效,但这不是修复问题的好方法.有没有办法强制打开使用特定的默认编码?

> sys.getdefaultencoding()返回’utf-8′,由于某些神秘的原因,此设置不受尊重
> PYTHONIOENCODING和PYTHONENCODING都设置为’utf-8′
>我的代码页设置为cp65001

这是我的python版本字符串:

win32上的Python 3.3.2(v3.3.2:d047928ae3f6,2013年5月16日,00:06:53)[MSC v.1600 64位(AMD64)]

编辑:我注意到locale.getpreferredencoding()返回cp932,所以我想找到一个使用utf-8作为默认值的Windows语言环境就可以了.这样的事情甚至存在吗?

解决方法

试试这个

import locale
locale.setlocale(locale.LC_ALL,'en_US.utf-8')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读