I am trying to parse an HTML page using a Python script I run in Sublime Text. This page contains non-ASCII characters. I kept getting [Decode error - output not utf-8] so I investigated a little and came down to this funny code snippet:
import codecs
#print((1, codecs.decode(codecs.encode('ò', 'utf-8'), 'utf-8')))
print('ò')
which prints [Decode error - output not utf-8]. This error does not happen if I encode an ASCII character. It is not a compile error - the program runs and completes - so I suspect this is a problem with Sublime Text processing the script output, but I can't narrow it down any further. How do I make this work?
解决方案
Go ahead and open the command prompt and type in:
c:\>chcp
to check the encoding of the command. By me it's
Active code page: 852
Now open the Python.sublime-build (C:\Users\User\AppData\Roaming\Sublime Text 2\Packages\User) build system and add the encoding:
{
"cmd": ["c:\\python33\\python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "cp852"
}
This should cut it.