Sublime Text 2和Python的编码错误
在使用Sublime Text 2编写代码时,我遇到了编码问题,代码行很多,搞得我很头疼。于是我决定做一个简单的实验。我写了以下代码,试图打印中文:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print('你好')
当我在Sublime Text中运行这段代码时,出现了以下错误:
File "D:\xampp\htdocs\stam\chinese print try.py", line 4, in <module>
print('\u4f60\u597d')
File "d:\Python34\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-1: character maps to <undefined>
[Finished in 0.2s with exit code 1]
这里有个大问题。 当我通过普通的Python图形界面运行这段代码时,一切都正常,可以成功打印。
我试着在这里查找解决办法,但我没搞明白这对我有什么帮助(这可能是因为我对Sublime Text的配置理解得不够)。
谢谢你的热心帮助。
2 个回答
0
看看这个链接:http://blog.sina.com.cn/s/blog_765abd7b0101dtbw.html
我做了以下两件事,最终解决了这个问题:
- 在代码中,添加
import sys reload(sys) sys.setdefaultencoding("utf-8")
- 在 Python.sublime-build 文件中,添加
"encoding":"utf-8"
1
这和这个在Sublime Text 3中用Python 3打印UTF-8的内容类似。
你可以修改或者添加一个新的构建配置,并在构建文件中加入“env”: {“PYTHONIOENCODING”: “utf8”}。
比如,新的构建文件应该像下面这样(适用于Windows 7):
{
"cmd": ["your_path\\python.exe", "-u", "$file"],
"file_regex": "^[ ]File \"(...?)\", line ([0-9]*)",
"selector": "source.python",
"env": {"PYTHONIOENCODING": "utf8"}
}