1. 程式人生 > >使用gulp將文件轉碼至utf-8格式

使用gulp將文件轉碼至utf-8格式

合同 sam tab fault 類型 教程 pack htm 目錄

在前兩篇文章中,我除了看《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格式