开发者社区> meteoric> 正文

Node.js批量去除BOM文件

简介: 之前的同事写了一个工具,但有bug,就是在替换文件后原文件的格式变成utf8 BOM了,这种带BOM的XML在Mac下可能读取不出来,所以就需要写个工具处理一下…   其实思路比较简单,首先遍历目录,然后读取目录,将文件头三个字节去除掉,然后保存为utf-8格式的文件即可,直接上代码吧 :)   var fs = require('fs');var path = "目标路径.
+关注继续查看

之前的同事写了一个工具,但有bug,就是在替换文件后原文件的格式变成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('\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文件:', filePath, "\n");

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

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

readDirectory(path);

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【node】express的www.js文件里面的process.env.PORT
【node】express的www.js文件里面的process.env.PORT
10 0
怎么用node执行ts文件
怎么用node执行ts文件
216 0
node使用 nodemon 来监听文件变化
知识边界: nodemon 就像是vue里面的开启热加载功能一样,开发者只要放心开发,不用修改一点就需要重新启动项目,进行测试
117 0
图片URL转file文件(前端+后端node.js)
图片URL转file文件(前端+后端node.js)
52 0
Node 项目通过 .npmrc 文件指定依赖安装源
`npm` 命令运行时,往往通过命令行指定相关配置,最常用的便是使用 `--registry` 来指定依赖的安装源。`.npmrc`(NPM Running Configuration)可以指定 `npm` 命令运行时的配置内容。
154 0
【node.js从入门到精通】如何将文件进行拆分重新写入,使用http模块写一个简易的服务端
【node.js从入门到精通】如何将文件进行拆分重新写入,使用http模块写一个简易的服务端
33 0
Node.js:fs文件模块的替代品fs-extra
Node.js:fs文件模块的替代品fs-extra
62 0
node.js: glob文件匹配
node.js: glob文件匹配
24 0
log4js-node:node.js日志框架输出到文件
log4js-node:node.js日志框架输出到文件
84 0
Node.js:Dotenv从`.env` 文件加载环境变量的库
Node.js:Dotenv从`.env` 文件加载环境变量的库
177 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
基于 Node.js 内核的企业级性能解决方案
立即下载
穆客带你快速定位 Node.js 内存泄露
立即下载
egg—— 企业级 Node 框架
立即下载