Node.js实现批量去除BOM文件头
作者:bea
之前的同事写了一个工具,但有bug,就是在替换文件后原文件的格式变成utf8 BOM了,这种带BOM的XML在Mac下可能读取不出来,所以就需要写个工具处理一下。 其实思路比较简单,首先遍历目录,然后读取目录,将文件头三个字节去除掉,然后保存为utf-8格式的文件即可,直接上代码吧 :) 代码如下: var fs = require('fs'); var path = "目标路径.."; function readDirectory(dirPath) {
之前的同事写了一个工具,但有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('
读取目录:
', 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);
有用 | 无用
其实思路比较简单,首先遍历目录,然后读取目录,将文件头三个字节去除掉,然后保存为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);
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- javascript中Date对象的getDay方法使用指南
- 原生javaScript实现图片延时加载的方法
- 使用JavaScript链式编程实现模拟Jquery函数
- 使用jQuery简单实现模拟浏览器搜索功能
- 编写简单的jQuery提示插件
- 不使用ajax实现无刷新提交表单
- webapp框架AngularUI的demo改造之路
- 浅析webapp框架AngularUI的demo
- AngularJS基础知识
- javascript关于继承的用法汇总
- jquery实现将获取的颜色值转换为十六进制形式的方法
- jQuery的text()方法用法分析
- jQuery中click事件的定义和用法
- javascript中String对象的slice()方法分析
- javascript中Number对象的toString()方法分析
- javascript中parseInt()函数的定义和用法分析
- JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
- node.js解决获取图片真实文件类型的问题
- javascript使用for循环批量注册的事件不能正确获取索引值的解决方法