在Sublime Text 2和3中,控制台输出不显示带有重音的行:
我在Windows中的vanilla Sublime中使用Tools > Build
并使用自动构建系统来执行它。
有没有解决这个问题?
答案 0 :(得分:3)
将文档中标准系统输出的编码设置为UTF-8
:
import sys
import codecs
sys.stdout = codecs.getwriter( "utf-8" )( sys.stdout.detach() )
print( "1" )
print( "áéíóúý âêîôû äëïöü àèìòù ãñõ" )
print( "2" )
要自动将UTF-8
编码输出应用于所有文档,请在command
文件中将以前的方法实现为内联Python.sublime-build
。
设置编码后,您的文档将通过内嵌exec
内的command
加载。
{
"cmd": [ "python", "-u", "-c", "import sys; import codecs; sys.stdout = codecs.getwriter( 'utf-8' )( sys.stdout.detach() ); exec( compile( open( r'$file', 'rb' ).read(), r'$file', 'exec'), globals(), locals() )" ],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"variants":
[
{
"name": "Syntax Check",
"shell_cmd": "python -m py_compile \"${file}\"",
}
]
}
提示:使用PackageResourceViewer创建Python.sublime-build
Sublime Text 3
使用Python
(稳定频道,构建3103 )和$('input[type="radio"]').click(function() {
$("#checkout a").attr('href', $(this).data('val'));
alert($("#checkout a").attr('href'));
});
3.4.3
答案 1 :(得分:0)
更干净的解决方案是将编码指定为构建设置的一部分
{
"cmd": ["python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"env": {
"PYTHONIOENCODING": "utf_8"
},
}
这在大多数情况下都适用。但在某些情况下,您可能需要删除-u
,这基本上是为了阻止无缓冲输出,因为它可能会导致问题
请参阅以下主题以讨论类似问题
Python 2.7 build on Sublime Text 3 doesn't print the '\uFFFD' character
答案 2 :(得分:0)
Sublime Text 3.2.2 build 3211似乎已修复:当我打开包含以下内容的test.py
时:
print("1")
print("á")
print("2")
然后,当使用 CTRL + B (使用Python 3.6)进行构建时,它可以即开即用地正常工作。
备注:默认的Python.sublime-build
确实是现在:
{
"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}\"",
}
]
}