码迷,mamicode.com
首页 > 编程语言 > 详细

Python2在Sublime Text3中print中文时报错原因及解决办法

时间:2016-01-24 14:16:45      阅读:892      评论:0      收藏:0      [点我收藏+]

标签:

1,出现的问题及分析

  在Sublime Text3中用ctrl+B运行python程序时,如果要打印输出英文时正常运行,而输出中文时则会报错,具体情况如下:

Traceback (most recent call last):
  File "D:\PythonWorkplace\test_print_unicode.py", line 3, in <module>
    print u程序
UnicodeEncodeError: ascii codec cant encode characters in position 0-1: ordinal not in range(128)

  分析:参考 https://www.v2ex.com/t/163786

2,解决办法

(1)修改Sublime Text3中的设置

  打开Preference-->Browse Packages...,查看是否存在python文件夹,若没有,可从Sublime Text2中相似路径(.../Sublime Text2/Packages)中拷贝Python文件夹,再从Python文件夹下修改Python.sublime-build文件,修改内容如下:

  原文件:

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"    
}

  修改后:

{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "env": {"PYTHONIOENCODING": "utf8"}    
}

  之后即可正常运行python程序而不报错。

(2) 修改文件头部

  在文件头部添加如下代码:

import sys
reload(sys)
sys.setdefaultencoding(utf-8)

该方法在输出中文时需要在每个文件头部都添加,较为麻烦,不太推荐

Python2在Sublime Text3中print中文时报错原因及解决办法

标签:

原文地址:http://www.cnblogs.com/congtou5/p/5155001.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!