求Nodejs处理表单数据生成GBK文件中文乱码问题
发布于 8 年前 作者 zhangxiaochu001 3052 次浏览 来自 问答

如题,从前端表单接收到的数据,在后台处理生成一个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``` 
回到顶部