L'exemple de cet article décrit la méthode de modification par lots du format d'encodage du fichier avec JavaScript. Partagez-le avec tout le monde pour votre référence. Les détails sont les suivants :
Résumé :
Récemment, alors que je rédigeais un manuel, j'ai rencontré un problème de "documents tronqués". Après avoir vérifié les fichiers, j'ai découvert que l'encodage des fichiers était erroné. Il y avait plus de 100 fichiers au total. J'ai utilisé un éditeur pour les enregistrer au format utf8. J'ai donc écrit un programme pour modifier le format d'encodage des fichiers par lots.
Code :
//Pack d'introduction
var fs = require('fs'),
iconv = require('iconv-lite');
//Variables globales
var root_path = './html',
Type_fichier = ['html', 'htm'],
From_code = 'GBK',
to_code = 'UTF8';
/**
* Déterminer si l'élément est dans le tableau
* @date 2015-01-13
* @param {[String]} elem [l'élément à trouver]
* @return {[bool]} [description]
*/
Array.prototype.inarray = fonction (elem) {
"utiliser strict";
var l = this.length;
tandis que (l--) {
Si (this[l] === elem) {
return true ;
>
>
retourner faux ;
};
/**
* Fonction de transcodage
* @date 2015-01-13
* @param {[String]} racine [répertoire du fichier d'encodage]
* @return {[type]} [description]
*/
fonction encodeFiles (racine) {
"utiliser strict";
var files = fs.readdirSync(root);
fichiers.forEach (fonction (fichier) {
var pathname = fichier racine '/',
stat = fs.lstatSync(chemin);
Si (!stat.isDirectory()) {
var nom = file.toString();
Si (!file_type.inarray(name.substring(name.lastIndexOf('.') 1))) {
revenir ;
>
fs.writeFile(pathname, iconv.decode(fs.readFileSync(pathname), from_code), {
encodage : to_code
}, fonction (erreur) {
Si (erreur) {
lancer une erreur ;
>
});
} autre {
encodeFiles(chemin d'accès);
>
});
>
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 des caractères tronqués apparaîtront.
Le code complet peut être téléchargé depuis ce site en cliquant ici.
J'espère que cet article sera utile à la conception de la programmation JavaScript de chacun.