如何使用node批量转换gbk编码的文件为utf8编码
在项目开发过程中,有时候会遇到文件编码问题,出现乱码的现象,如何让程序和文件统一编码呢?一般个别少量文件的做法是使用记事本打开文件,然后另存为对应的编码。如果有大量的文件需要修改编码怎么办?显然手动操作会累死人,相对简单但又是频繁重复的操作,我们都可以快速编码,交给计算机去完成呀。
操作方法
- 01
我们安装好node和iconv-lite组件 安装:npm install iconv-lite
- 02
编写node脚本代码 首先要获取对应目录下所有的文件列表:var files = fs.readdirSync("D:\project\a"); 其次是对文件类型进行过滤,仅处理*.js,*.css,如果是子目录,则递归继续遍历。
- 03
读取文件内容并做转换,转换之前先判断文件头信息是否包含Bom标记,如果包含则已经是utf8编码,不做转换了。 如下图,其中,"\ufeff"这个就是utf8+bom标记的关键,如果没有这个标记,识别utf8字符就要更麻烦些。使用标记的方式可以简易做编码转换;
- 04
最后,我们可以把上面的脚本做成批处理文件:convertToUtf8.bat 通过命令行的方式传入相应的路径,更方便使用。
赞 (0)