Mi colega anterior escribió una herramienta, pero había un error, es decir, después de reemplazar el archivo, el formato del archivo original se convirtió en UTF8 BOM. Es posible que este tipo de XML con BOM no se lea en Mac, por lo que necesito escribir una herramienta para tratarlo.
De hecho, la idea es relativamente simple. Primero, itera a través del directorio, luego lea el directorio, elimine los primeros tres bytes del archivo y guárdelo como un archivo en formato UTF-8. Solo ingrese el código :)
La copia del código es la siguiente:
var fs = require ('fs');
Var ruta = "ruta de destino ...";
función readDirectory (dirpath) {
if (fs.existssync (dirpath)) {
archivos var = fs.ReadDirsync (DirPath);
files.ForEach (function (archivo) {
var filepath = dirpath + "/" + archivo;
var estates = fs.statsync (filepath);
if (stats.isDirectory ()) {
console.log ('/n lee directorio:/n', filepath, "/n");
ReadDirectory (FilePath);
} else if (stats.isfile ()) {
var buff = fs.ReadFileSync (FilePath);
if (buff [0] .ToString (16) .tolowercase () == "ef" && buff [1] .ToString (16) .tolowercase () == "bb" && buff [2] .ToString (16) .tolowercase () == "bf") {
// EF BB BF 239 187 191
console.log ('/descubrir archivo BOM:', filepath, "/n");
buff = buff.slice (3);
fs.WriteFile (FilePath, Buff.ToString (), "UTF8");
}
}
});
} demás {
console.log ('no encontrado ruta:', dirpath);
}
}
readDirectorio (ruta);