问题描述
我试图使用我在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处理脚本输出的问题,但我无法进一步缩小范围。
我该如何工作?
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相同的问题。即使明确说明代码的编码(使用# - - 编码:UTF-8 - - 在文件的第一行)也无济于事。 我也试过显式编码有问题的字符串,但无济于事。
这似乎是一个崇高的内部问题/错误,因为我也尝试编码违规部分的源文档(在没有BOM的记事本++编码为UTF-8中)具有相同的结果。
虽然我不知道如何解决Sublime 2/3中的问题,但我只能提供解决方法==>使用CMD / PowerShell,这对我来说非常正常,输出正确。
PS:我希望这会有所帮助,但请注意,我既不是一位经验丰富的程序员,也不了解python或sublime。 我只想贡献我的2美分。