【问题标题】:Sublime Text 3, Python 3 and UTF-8 don't like each otherSublime Text 3、Python 3 和 UTF-8 互不喜欢
【发布时间】:2014-05-01 03:17:13
【问题描述】:

我正在尝试使用在 Sublime Text 中运行的 Python 脚本解析 HTML 页面。此页面包含非 ASCII 字符。我不断收到[Decode error - output not utf-8],所以我调查了一下,得出了这个有趣的代码sn-p:

import codecs

#print((1, codecs.decode(codecs.encode('ò', 'utf-8'), 'utf-8')))
print('ò')

打印[Decode error - output not utf-8]。如果我对 ASCII 字符进行编码,则不会发生此错误。这不是编译错误——程序运行并完成——所以我怀疑这是 Sublime Text 处理脚本输出的问题,但我无法进一步缩小范围。我该如何完成这项工作?

【问题讨论】:

    标签: python utf-8 sublimetext3


    【解决方案1】:

    继续打开命令提示符并输入:

    c:\>chcp
    

    检查命令的编码。对我来说是

    Active code page: 852
    

    现在打开Python.sublime-build (C:\Users\User\AppData\Roaming\Sublime Text 2\Packages\User) 构建系统并添加编码:

    {
        "cmd": ["c:\\python33\\python", "-u", "$file"],
        "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
        "selector": "source.python",
        "encoding": "cp852"
    } 
    

    这应该削减它。

    【讨论】:

      【解决方案2】:

      我在使用 python 3.4 和 Sublime Text 2 时遇到了同样的问题。甚至在代码的第一行明确说明了代码的编码(使用 # -- coding: UTF-8 --该文件)没有帮助。我也尝试过对有问题的字符串进行显式编码,但无济于事。

      这似乎是一个崇高的内部问题/错误,因为我也尝试以相同的结果对违规部分的源文档(在记事本++中编码为 UTF-8 而没有 BOM)进行编码。

      虽然我不知道如何在 Sublime 2/3 中解决该问题,但我只能提供解决方法 ==> 使用 CMD/PowerShell,它在正确输出的情况下工作得非常好。

      PS:我希望这会有所帮助,但请注意,我既不是经验丰富的程序员,也对 python 或 sublime 有深入的了解。我只是想贡献我的 2 美分。

      【讨论】:

        猜你喜欢
        • 2017-01-27
        • 1970-01-01
        • 2014-01-30
        • 2014-09-17
        • 2015-05-07
        • 2016-02-07
        • 2016-07-12
        • 1970-01-01
        相关资源
        最近更新 更多