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:
Die Codekopie lautet 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: https://github.com/baixuexiyang/coding können Sie ihn auf Ihr Konto geben. Wenn es einen Fehler gibt, wenden Sie sich bitte an das Problem.
Ist es nicht sehr gut? Ich hoffe es gefällt euch. Wenn Sie Fragen haben, hinterlassen Sie eine Nachricht.