Este artículo describe el método para modificar el formato de codificación del archivo por lotes en JavaScript. Compártelo para su referencia. Los detalles son los siguientes:
resumen:
Recientemente, encontré un problema cuando estaba haciendo el "código de documento" manual. Después de verificar el archivo, descubrí que la codificación del archivo era incorrecta, con más de 100 archivos en total. Si lo guardo como UTF8 con el editor, sería triste. Así que escribí un programa para modificar el formato de codificación del archivo.
Código:
Copie el código de la siguiente manera:/**
* Modificar el formato de codificación del archivo, por ejemplo: GBK a UTF8
* Admite directorio de niveles múltiples
* @param {string} [root_path] [ruta de archivo que debe ser transcodificada]
* @param {array} [file_type] [formato de archivo que requiere transcodificación, como el archivo html]
* @param {string} [from_code] [codificación de archivo]
* @param {string} [to_code] [codificación de destino del archivo]
*/
// Introducir el paquete
var fs = require ('fs'),
iconv = require ('iconv-lite');
// variables globales
var root_path = './html',
file_type = ['html', 'htm'],
from_code = 'gbk',
to_code = 'utf8';
/**
* Determinar si el elemento está en la matriz
* @Date 2015-01-13
* @param {[string]} Elem [Elemento está buscando]
* @return {[bool]} [descripción]
*/
Array.prototype.inArray = function (elem) {
"Use estricto";
var l = this.length;
mientras (l--) {
if (this [l] === Elem) {
devolver verdadero;
}
}
devolver falso;
};
/**
* Función de transcodificación
* @Date 2015-01-13
* @param {[string]} root [directorio de archivos codificado]
* @return {[type]} [Descripción]
*/
función codeDefiles (root) {
"Use estricto";
archivos var = fs.ReadDirsync (root);
files.ForEach (function (archivo) {
var rathName = root + '/' + archivo,
stat = fs.lstatSync (rathName);
if (! stat.isDirectory ()) {
var name = file.ToString ();
if (! file_type.inArray (name.substring (name.lastIndexof ('.') + 1))) {
devolver;
}
Fs.WriteFile (PathName, Iconv.Decode (fs.ReadFileSync (PathName), from_code), {
Codificación: TO_CODE
}, function (err) {
if (err) {
tirar err;
}
});
} demás {
EncodeFiles (PathName);
}
});
}
EncodeFiles (root_path);
resumen:
El programa anterior admite directorios de varios niveles, y el mismo archivo no se puede operar varias veces, de lo contrario, el código confuso aparecerá nuevamente.
El código completo se puede descargar haciendo clic aquí.
Espero que este artículo sea útil para la programación de JavaScript de todos.