Node.js BOM 파일 헤더 대량 제거

1727 단어 Node.jsBOM
이전의 동료가 도구를 썼지만 버그가 있습니다. 파일을 바꾼 후에 원래 파일의 형식이utf8 BOM으로 바뀌었습니다. 이런 BOM이 있는 XML은 Mac에서 읽을 수 없기 때문에 도구를 써서 처리해야 합니다.
사실 사고방식은 비교적 간단하다. 먼저 디렉터리를 훑어본 다음에 디렉터리를 읽고 파일 헤더 세 바이트를 제거한 다음utf-8 형식의 파일로 저장하면 된다. 바로 코드를 올려라:)

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('

', filePath, "
");
                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, "
");

                    buff = buff.slice(3);
                    fs.writeFile(filePath, buff.toString(), "utf8");
                }
            }
        });       

    } else {
        console.log('Not Found Path : ', dirPath);
    }
}

readDirectory(path);

좋은 웹페이지 즐겨찾기