【发布时间】:2013-06-28 07:05:09
【问题描述】:
我正在使用 Eclipse+PyDev 编写代码,并且在将此代码移至生产环境时经常遇到 unicode 问题。原因在这个小例子中展示了
a = u'фыва '\
'фыва'
如果 Eclipse 看到这一点,它会像什么都没发生一样创建 unicode 字符串,但如果直接向 Python shell(Python 2.7.3) 输入相同的命令,你会得到这个:
SyntaxError: (unicode error) 'ascii' codec can't decode byte 0xd1 in position 0: ordinal not in range(128)
因为正确的代码是:
a = u'фыва '\
u'фыва'
但由于 Eclipse+PyDev 的“宽容”,我总是遇到麻烦 :( 我如何强制 PyDev “遵守规则”?
【问题讨论】:
-
从 PyDev 运行脚本时检查
sys.version是 Python 2.x 和sys.defaultencoding()是 'ascii'。检查 PyDev 是否更改了 sitecustomize、usercustomize 模块。如果它以交互方式运行脚本;检查 PYTHONSTARTUP 环境变量指向的位置 -
@jf-sebastian,
sys.version2.7.3(默认,2012 年 8 月 1 日,05:14:39)[GCC 4.6.3],sys.defaultencoding()——没有这样的功能。 -
sys.getdefaultencoding()
-
@j-f-sebastian,你是对的。 shell 中的默认编码是“ascii”,PyDev 中的默认编码是“UTF-8”。如何在 Eclipse 中更改它?
-
我将编码更改为 US-ASCII,但这没有帮助。
标签: python eclipse unicode pydev