Rumah  >  Artikel  >  hujung hadapan web  >  Cara kumpulan mengubah suai format pengekodan fail dalam kemahiran javascript_javascript

Cara kumpulan mengubah suai format pengekodan fail dalam kemahiran javascript_javascript

WBOY
WBOYasal
2016-05-16 16:18:041340semak imbas

Contoh dalam artikel ini menerangkan kaedah kelompok mengubah suai format pengekodan fail dengan JavaScript. Kongsikan dengan semua orang untuk rujukan anda. Butirannya adalah seperti berikut:

Ringkasan:

Baru-baru ini, semasa saya membuat manual, saya menghadapi masalah "dokumen yang tidak betul". untuk menyimpannya sebagai utf8, ia akan menjadi tragis. Jadi saya menulis program untuk mengubah suai format pengekodan fail dalam kelompok.

Kod:

Salin kod Kod adalah seperti berikut:
/**
* Ubah suai format pengekodan fail, contohnya: GBK kepada UTF8
* Menyokong direktori pelbagai peringkat
* @param {String} [root_path] [Laluan fail yang perlu ditranskod]
* @param {Array} [file_type] [Format fail yang perlu ditranskod, seperti fail html]
* @param {String} [from_code] [Pengekodan fail]
* @param {String} [to_code] [Pengekodan sasaran fail]
,*/

//Pakej pengenalan
var fs = memerlukan('fs'),
iconv = memerlukan('iconv-lite');

//Pembolehubah global
var root_path = './html',
Jenis_fail = ['html', 'htm'],
From_code = 'GBK',
to_code = 'UTF8';

/**
* Tentukan sama ada elemen berada dalam tatasusunan
* @tarikh 2015-01-13
* @param {[String]} elem [elemen untuk ditemui]
* @return {[bool]} [penerangan]
,*/
Array.prototype.inarray = function(elem) {
"gunakan ketat";
var l = ini.panjang;
manakala (l--) {
Jika (ini[l] === elem) {
       kembali benar;
}
}
pulangkan palsu;
};

/**
* Fungsi transcoding
* @tarikh 2015-01-13
* @param {[String]} root [mengekodkan direktori fail]
* @return {[type]} [penerangan]
,*/
function encodeFiles(root) {
"gunakan ketat";
var files = fs.readdirSync(root);
files.forEach(function(fail) {
var pathname = root '/' fail,
​​stat = fs.lstatSync(nama laluan);
Jika (!stat.isDirectory()) {
var name = file.toString();
Jika (!file_type.inarray(name.substring(name.lastIndexOf('.') 1))) {
         kembali;
}
            fs.writeFile(pathname, iconv.decode(fs.readFileSync(pathname), from_code), {
pengekodan: to_code
}, fungsi(err) {
Jika (err) {
            silap buang;
}
});
} lain {
encodeFiles(pathname);
}
});
}
encodeFiles(root_path);

Ringkasan:

Atur cara di atas menyokong direktori berbilang peringkat, dan fail yang sama tidak boleh dikendalikan beberapa kali, jika tidak, aksara yang bercelaru akan muncul.
Kod lengkap boleh dimuat turun dari tapak ini dengan mengklik di sini.

Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn