微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Node.js实现批量去除BOM文件头

之前的同事写了一个工具,但有bug,就是在替换文件后原文件的格式变成utf8 BOM了,这种带BOM的XML在Mac下可能读取不出来,所以就需要写个工具处理一下。

其实思路比较简单,首先遍历目录,然后读取目录,将文件头三个字节去除掉,然后保存为utf-8格式的文件即可,直接上代码吧 :)

代码如下:

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读取目录:\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文件:',"\n");

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

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

readDirectory(path);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐