请问怎样把UTF-8的字符串 转化为GBK
我在程序中使用了 iconv这个模块做编码转换的,我发现GBK转 UTF-8可以,但反过来就不行了!求大神指点~ 下边是我的测试代码:
var Iconv = require('iconv').Iconv;
test: function(req, res) {
res.setHeader('Content-Type', 'text/html; charset=GBK');
var outputStrng = "主机编号,产品编号,批次号,生产日期,出库日期,销售地,购机日期\n";
var iconv = new Iconv('UTF-8', 'GBK//IGNORE');
outputStrng = iconv.convert(outputStrng).toString();
res.send(outputStrng);
}
5 回复
不要 toString()。直接把 Buffer send 出去
iconv-lite
.
@alsotang 能给下具体代码吗?新手学习中!
@xadillax 这个的确可以!反正我是跳过一个坑还有下一个坑,其实我场景是将数据通过csv导出!现在编码可以转化了,因为我前端是用的Angularjs,因为ajax 是不能直接下载文件的!所以我用了FileSaver.js 这个东东,但不知道为什么从服务器发送过来的已经是GBK了,但通过这货生成文件时,还是乱码的!奔溃中!
var blob = new Blob([response], {type: “text/plain;charset=gb18030”}); saveAs(blob, “test.csv”);
/**
* 下载字典
* @param req
* @param resp
*/
exports.download = function(req, resp) {
var name = req.param("name");
helper.dict.toCSV(name, function(err, str) {
if(err) {
return resp.renderError("导出失败:" + err.message);
}
var buf = iconv.encode(str, "GBK");
resp.type("application/x-csv");
resp.set("content-disposition", "attachment; filename=\"Dictionary.csv\"");
resp.send(200, buf);
});
};
摘自我以前一个项目的代码。
至于前端——我是前端渣。