Artikel ini menjelaskan metode format pengkodean file yang memodifikasi batch di JavaScript. Bagikan untuk referensi Anda. Dengan rincian sebagai berikut:
ringkasan:
Baru -baru ini, saya mengalami masalah ketika saya membuat 'kode dokumen' manual. Setelah memeriksa file, saya menemukan bahwa pengkodean file salah, dengan total lebih dari 100 file. Jika saya menyimpannya sebagai UTF8 dengan editor, itu akan menyedihkan. Jadi saya menulis program sendiri untuk Batch memodifikasi format pengkodean file.
Kode:
Salin kode sebagai berikut:/**
* Ubah format pengkodean file, misalnya: GBK ke UTF8
* Mendukung Direktori Multi-Level
* @param {string} [root_path] [path file yang perlu ditranskode]
* @param {array} [file_type] [format file yang membutuhkan transcoding, seperti file html]
* @param {string} [from_code] [File Encode]
* @param {string} [to_code] [pengkodean target file]
*/
// Perkenalkan paket
var fs = membutuhkan ('fs'),
iconv = membutuhkan ('iconv-lite');
// Variabel global
var root_path = './html',
file_type = ['html', 'htm'],
from_code = 'gbk',
to_code = 'utf8';
/**
* Tentukan apakah elemen tersebut ada di array
* @Date 2015-01-13
* @param {[string]} elem [elemen sedang dicari]
* @return {[bool]} [deskripsi]
*/
Array.prototype.inarray = function (elem) {
"Gunakan ketat";
var l = this.length;
while (l--) {
if (this [l] === elem) {
Kembali Benar;
}
}
mengembalikan false;
};
/**
* Fungsi transkoding
* @Date 2015-01-13
* @param {[string]} root [direktori file yang dikodekan]
* @return {[type]} [deskripsi]
*/
fungsi encodefiles (root) {
"Gunakan ketat";
var file = fs.readdirsync (root);
file.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))) {
kembali;
}
fs.writeFile (pathname, iconv.decode (fs.readfileSync (pathname), from_code), {
Pengkodean: to_code
}, function (err) {
if (err) {
Lempar err;
}
});
} kalau tidak {
encodefiles (pathname);
}
});
}
encodefiles (root_path);
ringkasan:
Program di atas mendukung direktori multi-level, dan file yang sama tidak dapat dioperasikan beberapa kali, jika tidak kode kacau akan muncul lagi.
Kode lengkap dapat diunduh dengan mengklik di sini.
Saya harap artikel ini akan membantu pemrograman JavaScript semua orang.