求Nodejs处理表单数据生成GBK文件中文乱码问题
如题,从前端表单接收到的数据,在后台处理生成一个GBK的文件。 (使用了iconv-lite模块) 生成的文件里面中文仍然为乱码 请教各位,怎么来处理呢? 感谢!
我的代码如下:
var fs = require('fs');
var iconv = require('iconv-lite');
var dtFileString //是post表单数据处理后的所有字段字符串
dtFileString = iconv.encode(dtFileString, 'gbk');
fs.writeFile(filePath, dtFileString, function(err){
if (err) {
console.log(err);
throw err;
isFilePass = false;
}else {
isFilePass = true;
}
}); \n```
3 回复
文件也得是GBK编码,不然打开肯定乱了
@DevinXian 请问怎么创建 GBK编码的文件啊?
我自己搞定了。 生成的是 utf8编码文件,然后在写入成功后读取文件内容,利用iconv将内容转换成gbk内容后,appendFile新的文件中。 代码如下:
fs.readFile(filePathTmp, function(err, data){
if (err) {
console.error(err);
isFilePass = false;
} else {
//把gbk流转换成utf8字符串
//var str = iconv.decode(new Buffer(data), 'GBK');
//把utf8字符串转换成gbk流
fs.appendFile(filePath, iconv.encode(data, 'gbk'), null, function (err) {
if (err) throw err;
console.log('写' + filePath + 'gbk文件正确');
isFilePass = true;
});
}
});
\n```