目前,我的用户目录位于“C: Users João”,我正在Windows 7下运行Python 2.7的64位版本。
通常,Python解释器以“ascii”作为默认编码运行。 但是,由于某些原因,当Eclipse运行它时,默认的编码是'utf-8'。 现在,在常规的Python控制台中,会发生以下情况:
>>> sys.getdefaultencoding() 'ascii' >>> os.path.expanduser('~/filename') 'C:\Users\Joxe3o/filename' >>> x = open(_,'w') >>> x.close() >>>
我会注意到' xe3'是Latin-1和Windows-1252中''的代码,并且一切正常。 不过在Eclipse中,
>>> sys.getdefaultencoding() 'utf-8' >>> os.path.expanduser('~/filename') 'C:\Users\Joxc6o/filename' >>> x = open(_,'w') Traceback (most recent call last): File "<stdin>",line 1,in <module> IOError: [Errno 13] Permission denied: 'C:\Users\Joxc6o/filename'
这是令人困惑的,因为' xc6'是'Æ'的字符代码,最重要的是,它不是有效的UTF-8。
Windows和Linux的spring i18n行为是不同的
gettext-commons找不到资源包
有没有什么办法可以在你自己的应用程序中使用Windows本地化数据?
什么是Windows代码页?
连字符和撇号字符 – 不同语言的相同ASCII码?
如果你想知道“权限被拒绝”,而不是“没有这样的文件或目录”,一些程序也写了'C: Users JoÆo'的东西,我也不知道为什么。
那么,这是什么原因呢? 这是否是程序化的,或者你认为这是一些系统设置可能是错误的?
TL; DR:主目录在标准Python解释器中被正确报告为“C: Users João”,当解释器在Eclipse中运行时,被标记为“C: Users JoÆo”。 为什么?
如何以独立于区域的方式查找本地组?
如何在Windows中使用启用伪区域进行testing?
在Windows上设置Python语言环境的正确方法是什么?
如何在Linux上的Java程序中更改input法?
尝试更改Eclipse的默认编码。 文件菜单:Windows – >首选项; 树栏:常规 – >工作区; 将“文本文件编码”从Cp1252更改为ISO-8859-1。
如果打开“调试配置”,转到“公共”选项卡,更改“编码”,您也可以更改特定的调试配置。
编辑:很奇怪。 在带有“João”目录的目录中的“./J*”上执行glob可以在Eclipse中使用64位Python 2.7.2,Windows 7中的UTF-8和Cp1252(默认)。
UTF-8:
[ '乔 xe3o']
CP1252:
[ '乔 xe3o']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。