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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 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中文时报错原因及解决办法的主要内容,如果未能解决你的问题,请参考以下文章

Sublime Text3 配置 Python2 Python3

sublime text3使用之注释修改颜色

在Sublime Text3中配置Python3的Build System

ubuntu sublime text3 python 配置 sublime text3 python 配置

sublime Text3支持vue高亮,sublime Text3格式化Vue

在Sublime Text3中安装Emmet插件