Cet article décrit la méthode de format de codage de fichiers de modification par lots en javascript. Partagez-le pour votre référence. Les détails sont les suivants:
résumé:
Récemment, j'ai rencontré un problème lorsque je faisais le «code de document» manuel. Après avoir vérifié le fichier, j'ai constaté que le codage du fichier était mauvais, avec plus de 100 fichiers au total. Si je l'enregistre en tant que UTF8 avec l'éditeur, ce serait triste. J'ai donc écrit un programme moi-même pour modifier le format d'encodage du fichier.
Code:
Copiez le code comme suit: / **
* Modifiez le format d'encodage du fichier, par exemple: GBK à UTF8
* Prend en charge le répertoire à plusieurs niveaux
* @param {string} [root_path] [chemin de fichier qui doit être transcodé]
* @param {array} [file_type] [Format de fichier qui nécessite un transcodage, tel que le fichier html]
* @param {String} [From_code] [Encodage de fichiers]
* @param {String} [TO_CODE] [Encodage cible du fichier]
* /
// introduire un package
var fs = require ('fs'),
iconv = require ('iconv-lite');
// Variables globales
var root_path = './html',
file_type = ['html', 'htm'],
from_code = 'gbk',
to_code = 'utf8';
/ **
* Déterminez si l'élément est dans le tableau
* @Date 2015-01-13
* @param {[String]} elem [élément étant recherché]
* @return {[bool]} [Description]
* /
Array.prototype.inarray = fonction (elem) {
"Utilisez strict";
var l = this.length;
while (l--) {
if (this [l] === elem) {
Retour Vrai;
}
}
retourne false;
};
/ **
* Fonction de transcodage
* @Date 2015-01-13
* @param {[String]} root [Répertoire de fichiers codé]
* @return {[type]} [Description]
* /
fonction encodefiles (root) {
"Utilisez strict";
var files = fs.readDiRSYnc (root);
files.ForEach (fonction (fichier) {
var pathname = root + '/' + fichier,
stat = fs.lstatSync (pathName);
if (! stat.isdirectory ()) {
var name = file.toString ();
if (! file_type.inArray (name.substring (name.lastIndexof ('.') + 1))) {
retour;
}
fs.writeFile (pathname, iconv.decode (fs.readfilesync (pathname), from_code), {
Encodage: TO_CODE
}, fonction (err) {
if (err) {
lancer err;
}
});
} autre {
EncodeFiles (pathName);
}
});
}
EncodeFiles (root_path);
résumé:
Le programme ci-dessus prend en charge les répertoires à plusieurs niveaux, et le même fichier ne peut pas être utilisé plusieurs fois, sinon le code brouillé réapparaîtra.
Le code complet peut être téléchargé en cliquant ici.
J'espère que cet article sera utile à la programmation JavaScript de tous.