我认为运行以下代码片段与python无关,而与sublime相关:
x = "Buenos días"
print(x)
将在terminal/command
提示符中打印,但不在sublimes build results
中打印。我已经做了一点研究,但找不到一个可行的解决方案。去掉i的i的急性重音可以达到预期的效果。
发布于 2018-06-09 05:37:26
一般来说,这样的问题是由Python在幕后决定生成输出时应该使用的编码和Sublime如何执行Python解释器之间的一些相互作用造成的。
特别是当Python解释器从终端运行时,它可以正确地确定正确的编码,当Sublime调用它时,Python解释器可能会感到困惑,并选择错误的编码。
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}\"",
}
]
}
https://stackoverflow.com/questions/50768586
复制相似问题