升华文本3、Python 3和UTF-8 don';我不喜欢彼此

升华文本3、Python 3和UTF-8 don';我不喜欢彼此,python,utf-8,sublimetext3,Python,Utf 8,Sublimetext3,我正在尝试使用在Sublime文本中运行的Python脚本解析HTML页面。此页包含非ASCII字符。我一直得到[解码错误-输出不是utf-8],所以我做了一些调查,得出了这个有趣的代码片段: import codecs #print((1, codecs.decode(codecs.encode('ò', 'utf-8'), 'utf-8'))) print('ò') 打印[解码错误-输出不是utf-8]。如果对ASCII字符进行编码,则不会发生此错误。这不是一个编译错误-程序运行并完成-

我正在尝试使用在Sublime文本中运行的Python脚本解析HTML页面。此页包含非ASCII字符。我一直得到
[解码错误-输出不是utf-8]
,所以我做了一些调查,得出了这个有趣的代码片段:

import codecs

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

打印
[解码错误-输出不是utf-8]
。如果对ASCII字符进行编码,则不会发生此错误。这不是一个编译错误-程序运行并完成-所以我怀疑这是升华文本处理脚本输出的问题,但我不能进一步缩小它的范围。我如何做到这一点?

我对python 3.4和Sublime Text 2也有同样的问题。即使明确说明代码的编码(在文件的第一行使用#--coding:UTF-8)也没有帮助。我也尝试过显式地对有问题的字符串进行编码,但没有效果

这似乎是一个非常严重的内部问题/错误,因为我也尝试过用相同的结果对有问题的部分的源文档进行编码(在记事本++中编码为UTF-8,没有BOM)

虽然我不知道如何修复Sublime 2/3中的问题,但我只能提供workaround==>use CMD/PowerShell,它可以非常好地为我提供正确的输出


PS:我希望这能有所帮助,但请注意,我既不是一名经验丰富的程序员,也不是python或sublime的渊博知识。我只想贡献我的2美分。

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

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"
} 
这应该可以解决问题