Sublime Text控制台不显示带重音的行

时间:2016-05-09 17:05:57

标签: unicode utf-8 sublimetext2 sublimetext3 sublimetext

在Sublime Text 2和3中,控制台输出不显示带有重音的行:

Example

我在Windows中的vanilla Sublime中使用Tools > Build并使用自动构建系统来执行它。

有没有解决这个问题?

3 个答案:

答案 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

进行测试

来源:

user copy

How to set sys.stdout encoding in Python 3?

答案 1 :(得分:0)

更干净的解决方案是将编码指定为构建设置的一部分

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

这在大多数情况下都适用。但在某些情况下,您可能需要删除-u,这基本上是为了阻止无缓冲输出,因为它可能会导致问题

Encoding

请参阅以下主题以讨论类似问题

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}\"",
        }
    ]
}