起因
atom编辑器使用起来还是很爽的,除了稍微有点卡。
不过它在处理 gbk 编码的文件的时候有点麻烦,每次都要手动的切换编码。
为了解决这个文件,上 atom.io 找了一下扩展,发现了 auto-encoding 这个插件。
于是就立刻下载安装了尝试一下,发现确实能正确地实现转码的功能,
不过还不是很智能,有些情况是会失败的。
由于我们这边前端的源代码都是utf-8的,只有模板文件(文件后缀都是 vm )是使用 gbk 编码的,
所以是不是只要遇到 .vm 文件就转为 gbk 就好了呢?
探索
按照这个思路,打开了这个扩展的源代码,代码是用 coffee 写的,虽然我不会但是这个语言和 js 是蛮像的(废话)。
主要的逻辑是在 auto-encoding.coffee 这个文件里面,可以看到里面使用了 jschardet 和 iconv-lite 这2个库,
前面那个应该就是判断当前文件的编码的,后面的那个是用来转码的。
部分代码展示如下:
jschardet = require 'jschardet