Sublime Text3: [Decode error - output not utf-8]

今天编译Python时, 输出窗口信息出现:
[Decode error - output not utf-8]

查资料发现是因为sublime读取解释器返回文本的编码不一样,于是通过下面这段代码验证:

import sys
print(sys.stdin.encoding)
print(sys.stdout.encoding)

用ctrl+B进行编译,返回的是“cp936”,用repl解释器交互返回的是utf-8,说明是由于编码不一致导致的

cp936
cp936
[Finished in 0.2s]

解决:
由于我自己新建了一个新的python3.7的编译器,所以要修改的是Python3.7.sublime-build文件在里面添加一行 (如果没有新建python编译器,则修改Python.sublime-build文件),文件路径在“Sublime Text3\Packages\”

"encoding":"cp936",

修改后为

{
    "shell_cmd": "python -u \"$file\"",         
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "encoding":"cp936",  #  要加的内容
    "env": {"PYTHONIOENCODING": "utf-8"},
    "env": {"PYTHONPATH": "C:/Program Files/Python37"},
 
    "variants":
    [
        {
            "name": "Syntax Check",
            "shell_cmd": "python -m py_compile \"${file}\"",
        }
    ]
}

保存,ctrl+B 重新编译,可正常输出中文。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值