使用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字样

猜你喜欢

转载自www.cnblogs.com/wadezhou/p/9991801.html
今日推荐