使用gulp将文件转码至utf-8格式

Posted wadezhou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用gulp将文件转码至utf-8格式相关的知识,希望对你有一定的参考价值。

在前两篇文章中,我除了看《mysql必知必会》之外,还参考了《SQL基础教程(第2版)》。但是把参考这本书里的SQL语句导进新建的数据库时遇到了点麻烦:我在运行SQL文件后发现表中中文字符全部乱码。在检查文件格式之后发现,随书给出的SQL文件的编码是GB2312……那就先得把这么些文件转成utf-8格式才能适合同样是uft8编码类型的数据库。

经过一番搜索,我找到了gulp-utf8-convert这么个插件可以将文件编码转为utf-8。随书给出的文件目录如下

├─Ch0
│      0.sql
│      0.txt
│
├─Ch1
│  ├─1_1
│  │      1_1.sql
│  │      1_2.sql

可以给出如下gulpfile.js

var gulp = require(‘gulp‘);
var utf8Convert = require(‘gulp-utf8-convert‘);
 
gulp.task(‘firstMenu‘,function() {
    gulp.src("./Sample/*.sql")
        .pipe(utf8Convert())
        .pipe(gulp.dest(‘./sql基础教程‘));
});
gulp.task(‘secondMenu‘,function() {
    gulp.src("./Sample/**/*.sql")
        .pipe(utf8Convert())
        .pipe(gulp.dest(‘./sql基础教程‘));
});
gulp.task(‘default‘, [‘firstMenu‘, ‘secondMenu‘]);

但是运行之后,发现sql基础教程文件夹里面的文件编码并没有改过来,然后通过查看node_modules/gulp-utf8-convert/index.js时后发现,这个插件是对文件类型有限制的,相应的解决办法是将index.js
中的第30行(v0.0.7)

var isTextFile = /^.(js|ts|coffee|css|less|sass|html?|tpl|txt|xml|json|ejs|jade|sql)$/.test(path.extname(fileName));

加上sql,再运行一遍就可以起作用了,起作用时,可以在console里看见有红色字体的[WARN] file CreateTableShopProduct.sql is not encoded in utf-8, it may be encoded in GB2312字样


以上是关于使用gulp将文件转码至utf-8格式的主要内容,如果未能解决你的问题,请参考以下文章

oracle编码gbk加载utf-8文件需要转码么?

使用node中的iconv-lite实现对“gbk”格式的转码

java文件转码后,每行后面多了很多零字符

涨知识|Gulp + Babel实现es6向es5转码

Java中中文转码,为啥中文数字转不过来?

在excel导入到数据库的时候 中文出现乱码 怎么转码啊