Sublime - Python3不打印非utf-8字符(西班牙语)

时间:2018-06-08 21:26:04

标签: python sublimetext3

我认为它与sublime相关而非python,运行此代码段:

x = "Buenos días"
print(x)

将在terminal/command提示符中打印,但不会在升级build results中打印。已经进行了一些研究,但找不到可行的解决方案。删除í尖锐的重音到我的工作正常。

1 个答案:

答案 0 :(得分:1)

一般来说,像这样的问题是由于Python在幕后确定它在生成输出时应该使用的编码以及Sublime如何执行Python解释器之间的一些相互作用引起的。

特别是当它从终端运行时可以正确地确定正确的编码时,Python解释器可能会混淆并在Sublime调用它时选错了。

PYTHONIOENCODING环境变量可以用来告诉解释器使用特定的编码,而不管它自动选择的是什么。

sublime-build文件允许您使用env键指定在构建期间应用的自定义环境变量,因此您可以执行以下操作:

{
    "shell_cmd": "python -u \"$file\"",
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",

    "env": {"PYTHONIOENCODING": "utf-8"},

    "variants":
    [
        {
            "name": "Syntax Check",
            "shell_cmd": "python -m py_compile \"${file}\"",
        }
    ]
}