javascript大量にファイルの符号化フォーマットを修正する方法
要約:
最近マニュアルを作る時に「文書の文字化け」という問題がありました.ファイルを見てから、ファイルのコードが正しくないことに気づきました.全部で100個以上のファイルがエディタでutf 8と保存されたら、悲しいです.ですから、自分でプログラムを書いて、ファイルのコードフォーマットを大量に修正しました.
コード:
/**
* , :GBK UTF8
*
* @param {String} [root_path] [ ]
* @param {Array} [file_type] [ , html ]
* @param {String} [from_code] [ ]
* @param {String} [to_code] [ ]
*/
//
var fs = require('fs'),
iconv = require('iconv-lite');
//
var root_path = './html',
file_type = ['html', 'htm'],
from_code = 'GBK',
to_code = 'UTF8';
/**
*
* @date 2015-01-13
* @param {[String]} elem [ ]
* @return {[bool]} [description]
*/
Array.prototype.inarray = function(elem) {
"use strict";
var l = this.length;
while (l--) {
if (this[l] === elem) {
return true;
}
}
return false;
};
/**
*
* @date 2015-01-13
* @param {[String]} root [ ]
* @return {[type]} [description]
*/
function encodeFiles(root) {
"use strict";
var files = fs.readdirSync(root);
files.forEach(function(file) {
var pathname = root + '/' + file,
stat = fs.lstatSync(pathname);
if (!stat.isDirectory()) {
var name = file.toString();
if (!file_type.inarray(name.substring(name.lastIndexOf('.') + 1))) {
return;
}
fs.writeFile(pathname, iconv.decode(fs.readFileSync(pathname), from_code), {
encoding: to_code
}, function(err) {
if (err) {
throw err;
}
});
} else {
encodeFiles(pathname);
}
});
}
encodeFiles(root_path);
リボン:上のプログラムはマルチレベルのディレクトリをサポートしています.同じファイルは何回も操作できません.でないと、文字化けが発生します.完全コードはここをクリックしてダウンロードできます.
本論文で述べたように、皆さんのjavascriptプログラムの設計に役に立ちます.