Heim  >  Artikel  >  Web-Frontend  >  Node.js implementiert die Stapelentfernung von BOM-Dateiheadern

Node.js implementiert die Stapelentfernung von BOM-Dateiheadern

PHPz
PHPznach vorne
2016-05-16 16:25:241480Durchsuche

In diesem Artikel wird hauptsächlich Node.js zum Implementieren der Batch-Entfernung von BOM-Dateiheadern vorgestellt. In diesem Artikel können bedürftige Freunde darauf verweisen.

Ein ehemaliger Kollege hat ein Tool geschrieben, aber nach dem Ersetzen der Datei wurde das Format der Originaldatei in utf8 geändert. Diese Art von XML mit BOM kann unter Mac nicht gelesen werden Sie müssen ein Tool schreiben, um damit umzugehen.

Tatsächlich ist die Idee relativ einfach. Durchsuchen Sie zuerst das Verzeichnis, lesen Sie dann das Verzeichnis, entfernen Sie die ersten drei Bytes der Datei und speichern Sie sie dann als Datei im UTF-8-Format Code:)

var fs = require('fs');
var path = "目标路径..";


function readDirectory(dirPath) {
    if (fs.existsSync(dirPath)) {
        var files = fs.readdirSync(dirPath);
        
        files.forEach(function(file) {
            var filePath = dirPath + "/" + file;
            var stats = fs.statSync(filePath);
            if (stats.isDirectory()) {
                console.log('\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('\发现BOM文件:', filePath, "\n");
                    buff = buff.slice(3);
                    fs.writeFile(filePath, buff.toString(), "utf8");
                }
            }
        });       
    } else {
        console.log('Not Found Path : ', dirPath);
    }
}
readDirectory(path);

Das Obige ist der gesamte Inhalt dieses Kapitels. Weitere verwandte Tutorials finden Sie unter Node.js Video-Tutorial!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen