我正在尝试使用我在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处理脚本输出的问题,但我无法进一步缩小范围。我如何使这项工作?
答案 0 :(得分:6)
继续并打开命令提示符并输入:
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"
}
这应该削减它。
答案 1 :(得分:0)
我遇到了与python 3.4和Sublime Text 2相同的问题。甚至明确说明代码的编码(使用# - - 编码:UTF-8 - - 在第一行该文件)没有帮助。我也试过显式编码有问题的字符串,但无济于事。
这似乎是一个崇高的内部问题/错误,因为我也尝试编码违规部分的源文档(在没有BOM的情况下编码为UTF-8的notepad ++中),结果相同。
虽然我不知道如何解决Sublime 2/3中的问题,但我只能提供解决方法==>使用CMD / PowerShell,它可以很好地正确输出。
PS:我希望这会有所帮助,但请注意,我既不是一位经验丰富的程序员,也不了解python或sublime。我只想贡献2美分。