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


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 can't 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')

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM