当前位置: 代码迷 >> python >> Sublime Text 3,Python 3和UTF-8彼此不喜欢
  详细解决方案

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

热度:102   发布时间:2023-07-16 10:03:59.0

我试图使用我在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处理脚本输出的问题,但我无法进一步缩小范围。 我该如何工作?

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

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"
} 

这应该削减它。

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

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

虽然我不知道如何解决Sublime 2/3中的问题,但我只能提供解决方法==>使用CMD / PowerShell,这对我来说非常正常,输出正确。

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

  相关解决方案