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

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

字樣