【问题标题】:Sublime Text 2 encoding error with python3 buildpython3构建的Sublime Text 2编码错误
【发布时间】:2013-02-16 10:43:15
【问题描述】:

从 Sublime Text 2 运行我的 python3 脚本时,出现以下错误:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

此外,当从终端运行相同的脚本时,不会出现问题。

Sublime 的构建系统设置如下:

{
"cmd": ["python3", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf8",
"path": "/Library/Frameworks/Python.framework/Versions/3.3/bin/"
}

提前致谢!

【问题讨论】:

    标签: python character-encoding sublimetext2


    【解决方案1】:

    经过一番调查研究,我弄清楚了问题所在:

    子进程中缺少 LANG env 变量,由 Sublime Text 2 运行。我通过在构建设置中添加 LANG 变量来修复它,如下所示:

    {
    "cmd": ["python3", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "env": {"LANG": "en_US.UTF-8"}
    }
    

    【讨论】:

    • 太棒了!解决了我的问题。
    • 所以,我正要再次将此作为问题发布,只是为了提供答案,但我想我会在这里发表评论。我试过这个,它没有用。也许,因为我正在使用Mac。对我来说,诀窍不是将 LANG env 变量设置为,而是将 LC_CTYPE 设置为“UTF-8”。我真的搜索了 3 个小时,在我的桌面上留下了牙印,因此为什么这可能会有所帮助。
    【解决方案2】:

    Martin 的解决方案效果很好!在 Windows/Python3.5 环境中,只需设置以下内容而不是“LANG”:

    "env": {"PYTHONIOENCODING": "utf8"}
    

    【讨论】:

      猜你喜欢
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      相关资源
      最近更新 更多