Sublime Text 3,Python 3和UTF-8彼此不喜欢

时间:2014-03-23 22:32:28

标签: python utf-8 sublimetext3

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

import codecs

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

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

2 个答案:

答案 0 :(得分:6)

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

c:\>chcp

检查命令的编码。由我来了

Active code page: 852

现在打开Python.sublime-buildC:\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"
} 

这应该削减它。

答案 1 :(得分:0)

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

这似乎是一个崇高的内部问题/错误,因为我也尝试编码违规部分的源文档(在没有BOM的情况下编码为UTF-8的notepad ++中),结果相同。

虽然我不知道如何解决Sublime 2/3中的问题,但我只能提供解决方法==>使用CMD / PowerShell,它可以很好地正确输出。

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