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

 更新时间:2014年12月20日 10:53:24   投稿:junjie  
这篇文章主要介绍了Node.js实现批量去除BOM文件头,本文直接给出实现代码,需要的朋友可以参考下

之前的同事写了一个工具,但有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.js中环境变量process.env的一些事详解

    Node.js中环境变量process.env的一些事详解

    这篇文章主要给大家介绍了关于Node.js中环境变量process.env的一些事,文中通过示例代码介绍的非常详细,对大家学习或者使用node.js具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-10-10
  • 在Node.js中处理Promise中错误的示例代码

    在Node.js中处理Promise中错误的示例代码

    在现代JavaScript开发中,尤其在Node.js环境中,Promise已成为处理异步操作的重要方式,然而,Promise的错误处理却常常让开发者感到困惑,在这篇文章中,我们将深入探讨如何在Node.js中处理Promise中的错误,提供多个示例代码,以便于理解和实践,需要的朋友可以参考下
    2024-09-09
  • windows系统下安装npm(Node.js)方法教程

    windows系统下安装npm(Node.js)方法教程

    在Windows环境下进行Node.js的安装并不是一件复杂的事情,但是在安装过程中需要注意一些细节,下面这篇文章主要给大家介绍了关于windows系统下安装npm(Node.js)的相关资料,需要的朋友可以参考下
    2023-12-12
  • Npm link的作用与使用示例代码

    Npm link的作用与使用示例代码

    npm link可以帮助我们模拟包安装后的状态,它会在系统中做一个快捷方式映射,让本地的包就好像 install 过一样,可以直接使用,这篇文章主要介绍了Npm link的作用与使用示例代码,需要的朋友可以参考下
    2023-01-01
  • 什么是MEAN?JavaScript编程中的MEAN是什么意思?

    什么是MEAN?JavaScript编程中的MEAN是什么意思?

    这篇文章主要介绍了什么是MEAN?JavaScript编程中的MEAN是什么意思?,跟lampp一样,MEAN是指现代web应用全栈开发工具一个组合,需要的朋友可以参考下
    2014-12-12
  • nodejs对mongodb数据库的增加修删该查实例代码

    nodejs对mongodb数据库的增加修删该查实例代码

    在本篇文章里小编给大家整理的是一篇关于nodejs对mongodb数据库的增加修删该查实例代码,有需要的朋友们可以参考下。
    2020-01-01
  • nodejs中关于mysql数据库的操作

    nodejs中关于mysql数据库的操作

    这篇文章主要介绍了nodejs中关于mysql数据库的操作方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 抛弃Nginx使用nodejs做反向代理服务器

    抛弃Nginx使用nodejs做反向代理服务器

    每当提起反向代理器,人们通常一想到的就是 Nginx,但是今天我们暂时忽略大名鼎鼎的 Nginx,采用同样也是使用单线程、事件循环的服务端小弟——Nodejs 来达成。
    2014-07-07
  • node+axios实现服务端文件上传示例

    node+axios实现服务端文件上传示例

    这篇文章主要介绍了node+axios实现服务端文件上传示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 用Nodejs搭建服务器访问html、css、JS等静态资源文件

    用Nodejs搭建服务器访问html、css、JS等静态资源文件

    本篇文章主要介绍了用Nodejs搭建服务器访问html、css、JS等静态资源文件的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04

最新评论