javascript批量修改文件编码格式的方法
本文实例讲述了javascript批量修改文件编码格式的方法。分享给大家供大家参考。具体如下
摘要
最近在制作手册的时候遇到了一个问题'文档乱码',查看文件之后发现文件编码不对,总共100多个文件,如果用编辑器另存为utf8,那就悲催了。所以自己就写了个程序,批量修改文件编码格式。
代码
修改文件编码格式,例如GBK转UTF8
支持多级目录
@param {String} [root_path] [需要进行转码的文件路径]
@param {Array} [file_type] [需要进行转码的文件格式,比如html文件]
@param {String} [from_code] [文件的编码]
@param {String} [to_code] [文件的目标编码]
/
// 引入包
var fs = require('fs'),
iconv = require('iconv-lite');
// 全局变量
var root_path = './html',
file_type = ['html', 'htm'],
from_code = 'GBK',
to_code = 'UTF8';
/
判断元素是否在数组内
@date 2015-01-13
@param {[String]} elem [被查找的元素]
@return {[bool]} [description]
/
Array.prototype.inarray = function(elem) {
"use strict";
var l = this.length;
while (l--) {
if (this[l] === elem) {
return true;
}
}
return false;
};
/
转码函数
@date 2015-01-13
@param {[String]} root [编码文件目录]
@return {[type]} [description]
/
function encodeFiles(root) {
"use strict";
var files = fs.readdirSync(root);
files.forEach(function(file) {
var pathname = root + '/' + file,
stat = fs.lstatSync(pathname);
if (!stat.isDirectory()) {
var name = file.toString();
if (!file_type.inarray(name.substring(name.lastIndexOf('.') + 1))) {
return;
}
fs.writeFile(pathname, iconv.decode(fs.readFileSync(pathname), from_code), {
encoding: to_code
}, function(err) {
if (err) {
throw err;
}
});
} else {
encodeFiles(pathname);
}
});
}
encodeFiles(root_path);
小结
上面的程序支持多级目录,同一个文件不能进行多次操作,否则又会出现乱码。
完整代码可点击此处。
希望本文所述对大家的javascript程序设计有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程