Mein früherer Kollege schrieb ein Tool, aber es gab einen Fehler, dh nach dem Ersetzen der Datei wurde das Format der Originaldatei UTF8 BOM. Diese Art von XML mit BOM wird möglicherweise nicht auf Mac gelesen, daher muss ich ein Tool schreiben, um damit umzugehen.
Tatsächlich ist die Idee relativ einfach. Iterieren Sie zuerst das Verzeichnis, lesen Sie dann das Verzeichnis, entfernen Sie die ersten drei Bytes der Datei und speichern Sie es als Datei im UTF-8-Format. Geben Sie einfach den Code ein :)
Die Codekopie lautet wie folgt:
var fs = fordert ('fs');
var path = "Zielpfad ...";
Funktion readDirectory (Dirath) {
if (fs.existsSync (Dirath)) {
var files = fs.readdirsync (DirPath);
Dateien.foreach (Funktion (Datei) {
var filepath = dirpath + "/" + Datei;
var stats = fs.statync (filepath);
if (stats.isdirectory ()) {
console.log ('/n lesen Verzeichnis:/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 ('/Discover BOM -Datei:', filepath, "/n");
Buff = buff.lice (3);
fs.writeFile (filepath, buff.toString (), "utf8");
}
}
});
} anders {
console.log ('nicht gefundener Pfad:', Dirath);
}
}
ReadDirectory (Pfad);