Dieser Artikel beschreibt die Methode des Batch -Modifikation von Dateicodierungsformat in JavaScript. Teilen Sie es für Ihre Referenz. Die Details sind wie folgt:
Zusammenfassung:
Vor kurzem habe ich auf ein Problem gestoßen, als ich den Handbuch "Dokumentcode" erstellt habe. Nachdem ich die Datei überprüft hatte, stellte ich fest, dass die Dateicodierung mit insgesamt mehr als 100 Dateien falsch war. Wenn ich es als UTF8 mit dem Herausgeber speichere, wäre es traurig. Deshalb habe ich selbst ein Programm geschrieben, um das Dateicodierungsformat zu ändern.
Code:
Kopieren Sie den Code wie folgt:/**
* Ändern Sie das Dateicodierungsformat, zum Beispiel: GBK zu UTF8
* Unterstützt ein Multi-Level-Verzeichnis
* @param {string} [root_path] [Dateipfad, der transkodiert werden muss]
* @param {array} [Datei_type] [Dateiformat, das Transkodierung erfordert, wie z. B. HTML -Datei]
* @param {string} [from_code] [Dateicodierung]
* @param {string} [to_code] [Zielcodierung der Datei]
*/
// Paket einführen
var fs = erfordern ('fs'),
iconv = require ('iconv-lite');
// Globale Variablen
var root_path = './html',
Datei_type = ['html', 'htm'],
von_code = 'gbk',,
to_code = 'utf8';
/**
* Bestimmen Sie, ob sich das Element im Array befindet
* @date 2015-01-13
* @param {[String]} Elem [Element wird nachschlagen]
* @return {[bool]} [Beschreibung]
*/
Array.Prototype.inArray = Funktion (Elem) {
"Strikt verwenden";
var l = this.length;
while (l--) {
if (this [l] === elem) {
zurückkehren;
}
}
false zurückgeben;
};
/**
* Transcodierungsfunktion
* @date 2015-01-13
* @param {[string]} root [codiertes Dateiverzeichnis]
* @return {[type]} [Beschreibung]
*/
Funktion EncodeFiles (root) {
"Strikt verwenden";
var files = fs.readdirsync (root);
Dateien.foreach (Funktion (Datei) {
var pathname = root + '/' + Datei,
stat = fs.lstatSync (Pathname);
if (! stat.isdirectory ()) {
var name = file.toString ();
if (! File_type.inarray (name.substring (name.lastindexof ('.') + 1))) {
zurückkehren;
}
fs.writeFile (Pathname, iconv.decode (fs.readFileSync (Pathname), von_code), {{
Codierung: to_code
}, function (err) {
if (err) {
errösten;
}
});
} anders {
EncodeFiles (Pathname);
}
});
}
Encodefiles (root_path);
Zusammenfassung:
Das obige Programm unterstützt Multi-Level-Verzeichnisse, und die gleiche Datei kann nicht mehrmals betrieben werden, da ansonsten der verstümmelte Code erneut angezeigt wird.
Der vollständige Code kann heruntergeladen werden, indem Sie hier klicken.
Ich hoffe, dieser Artikel wird für JavaScript -Programme aller hilfreich sein.