我认为它与sublime相关而非python,运行此代码段:
x = "Buenos días"
print(x)
将在terminal/command
提示符中打印,但不会在升级build results
中打印。已经进行了一些研究,但找不到可行的解决方案。删除í尖锐的重音到我的工作正常。
答案 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}\"",
}
]
}