代码之家  ›  专栏  ›  技术社区  ›  user1767754

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

  •  0
  • user1767754  · 技术社区  · 8 年前

    我认为这与sublime相关,而不是python,运行以下代码片段:

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

    将打印 terminal/command 迅速但不崇高 build results . 已经做了一点研究,但找不到有效的解决方案。去掉A的尖锐口音,我就按预期工作了。

    1 回复  |  直到 8 年前
        1
  •  1
  •   OdatNurd    8 年前

    一般来说,这样的问题是由python在后台决定生成输出时应该使用的编码和sublime执行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}\"",
            }
        ]
    }