Heim >Web-Frontend >js-Tutorial >nodejs Batch-Änderung der Dateikodierung format_node.js

nodejs Batch-Änderung der Dateikodierung format_node.js

WBOY
WBOYOriginal
2016-05-16 16:18:301518Durchsuche

Zusammenfassung:
Als ich kürzlich ein Handbuch erstellte, stieß ich auf ein Problem mit „verstümmelten Dokumenten“. Nachdem ich die Dateien überprüft hatte, stellte ich fest, dass insgesamt mehr als 100 Dateien vorhanden waren als utf8 wäre es tragisch. Also habe ich ein Programm geschrieben, um das Dateikodierungsformat stapelweise zu ändern.

Code:

Code kopieren Der Code lautet wie folgt:

/**
* Ändern Sie das Dateikodierungsformat, zum Beispiel: GBK zu UTF8
* Unterstützt mehrstufige Verzeichnisse
* @param {String} [root_path] [Dateipfad, der transkodiert werden muss]
* @param {Array} [file_type] [Dateiformat, das transkodiert werden muss, z. B. HTML-Datei]
* @param {String} [from_code] [Dateikodierung]
* @param {String} [to_code] [Zielkodierung der Datei]
​*/
//Paket vorstellen
var fs = require('fs'),
iconv = require('iconv-lite');
//Globale Variablen
var root_path = './html',
File_type = ['html', 'htm'],
From_code = 'GBK',
to_code = 'UTF8';
/**
* Bestimmen Sie, ob sich das Element im Array
befindet * @Datum 13.01.2015
* @param {[String]} elem [das zu findende Element]
* @return {[bool]} [Beschreibung]
​*/
Array.prototype.inarray = function(elem) {
„strikt verwenden“;
var l = this.length;
while (l--) {
If (this[l] === elem) {
       return true;
}
}
return false;
};
/**
* Transkodierungsfunktion
* @Datum 13.01.2015
* @param {[String]} root [Verzeichnis der Kodierungsdatei]
* @return {[Typ]} [Beschreibung]
​*/
Funktion encodeFiles(root) {
„strikt verwenden“;
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))) {
         zurück;
}
            fs.writeFile(pathname, iconv.decode(fs.readFileSync(pathname), from_code), {
Kodierung: to_code
}, Funktion(err) {
Wenn (irrt) {
            throw err;
}
});
} sonst {
encodeFiles(pathname);
}
});
}
encodeFiles(root_path);

Zusammenfassung:
Das obige Programm unterstützt mehrstufige Verzeichnisse. Dieselbe Datei kann nicht mehrmals bearbeitet werden, da sonst verstümmelte Zeichen angezeigt werden.

Vollständiger Code: https://github.com/baixuexiyang/coding, Sie können ihn unter Ihrem eigenen Konto teilen. Wenn es Fehler gibt, melden Sie diese bitte über das Problem.

Ist es nicht sehr gut? Ich hoffe, es gefällt euch allen. Wenn ihr Fragen habt, hinterlasst bitte eine Nachricht.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn