Sublime text 2/3 [Decode error - output not utf-8] 完美解决方法

sublime text有时运行会输出以下错误信息:

[Decode error - output not utf-8]或者[Decode error - output not gbk]

错误信息意思就是脚本输出的信息不是某种指定编码.

指定的编码一般在XX.sublime-build里,比如ruby.sublime-build的内容为: 

{
	"shell_cmd": "ruby \"$file\"",
	"file_regex": "(\\w:...*?):([0-9]*):?([0-9]*)",
	"selector": "source.ruby",
	"encoding": "utf-8", 
}

其中encoding就是指定的编码,ruby.sublime-build可以在Sublime Text 3\Packages\Ruby.sublime-package里找到.

我们可以通过修改ruby.sublime-build来修改输出文字信息的编码.

1. 将ruby.sublime-build文件从Ruby.sublime-package里复制出来,(注意:Ruby.sublime-package是一个zip压缩文件,只要将其后缀名改为zip即可打开这个压缩文件)

2.将ruby.sublime-build复制到sublime text的Data\Packages\User\目录

3. 打开此文件,将此文件中的"encoding": "utf-8"修改为"encoding": "gbk"

以上这种修改有局限,比如我有时候输出的是utf-8,有时候输出的是gbk,这时候就不行了.

 

以下方法可以解决这个局限.

1.在sublime text的安装目录下的Packages\目录下找到Default.sublime-package,将这个复制出来,将后缀改名为zip.

是的,它就是个zip文件,解压缩它,然后将其中的exec.py文件放到sublime text的Data\Packages\User\目录下.

2.打开exec.py.找到类ExecCommand的append_data函数,在以下位置添加代码

   def append_data(self, proc, data):
        if proc != self.proc:
            # a second call to exec has been made before the first one
            # finished, ignore it instead of intermingling the output.
            if proc:
                proc.kill()
            return
 
        #add start
        is_decode_ok = True;
        try:
            str = data.decode(self.encoding)
        except:
            is_decode_ok = False
        if is_decode_ok==False:
            try:
                str = data.decode("gbk")
            except:
                str = "[Decode error - output not " + self.encoding + " and gbk]\n"
                proc = None
 
        # Normalize newlines, Sublime Text always uses a single \n separator
        # in memory.
        str = str.replace('\r\n', '\n').replace('\r', '\n')
 
        self.output_view.run_command('append', {'characters': str, 'force': True, 'scroll_to_end': True})


其原理就是在解码输出文字编码出错时再使用gbk试试,相当于utf-8和gbk两种编码都试试,这样可以解决编码错误的问题.

您可以任意转载本文,但转载时请勿删除作者信息。 
作者:hgyxbll,原文链接: http://shashanzhao.com/archives/976.html
相关推荐
<p><span style="color: #666666;"><span style="font-size: 14px;">本课程讲了Vue3+Vue2入门基础与实战,其中还重点讲解了ES6、TypeScript这些基础知识,实战是</span></span><span style="color: #666666;"><span style="font-size: 14px;">价值5000元的真实企业级项目---仿京东电商网站,同时项目代码全部赠送</span></span><span style="color: #666666;"><span style="font-size: 14px;">,还赠送前后端架构模板,工作中直接使用。</span></span></p> <p> </p> <p><span style="color: #666666; font-size: 14px; background-color: #ffffff;">VUE是目前热门的前端框架之一,就业薪资很高,本课程教您如何快速学会VUE并应用到实战,教你如何解决内存泄漏,常用UI库的使用,自己封装组件,正式上线白屏问题,性能优化等。对正在工作当中或打算学习VUE高薪就业的你来说,那么这门课程便是你手中的葵花宝典。</span><br /><br /><span style="color: #666666; font-size: 14px; background-color: #ffffff;">学习技巧:学习当中不要只看,一定要多敲代码,如果碰到某一个知识点不是很明白,不要钻牛角尖,千万不要因为一个点,放弃整个森林,接着往下学,硬着头皮开发项目只要能亲自开发一个完整的项目,你会发现不明白的地方自然而然就明白了,项目做出来就真正的学会了。</span><br /><br /><span style="color: #666666; font-size: 14px; background-color: #ffffff;">此vue课程以面试和实战为基础进行讲解,每个知识点都会让你知道在实际项目开发中如何使用,学习后,可以开发大型项目,增强逻辑思维,至少让你拥有3年以上开发经验的实力!</span><br /><br /><span style="color: #666666; font-size: 14px; background-color: #ffffff;">代码和ppt均可下载!</span><br /><br /></p> <p><span style="color: #666666; font-size: 14px; background-color: #ffffff;">免费提供《企业级完整实战项目接口文档》,绝对可用。</span></p> <p><img src="https://img-bss.csdn.net/202001090736032736.png" alt="" /><img src="https://img-bss.csdn.net/202001090736166806.png" alt="" /><img src="https://img-bss.csdn.net/202001090736273968.png" alt="" /></p> <p> </p> <p> </p>
©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师:白松林 返回首页