资讯专栏INFORMATION COLUMN

Node.js 解决 csv 乱码问题

yuanzhanghu / 3551人阅读

摘要:而且下载的内容如果有中文字符的话还有乱码的现象。接下来就是介绍一下两个库可以解决我们的问题,一个是可以通过的数据去生成文件的内容,然后在,另外一个库则是用来把内容的编码转换为格式,这样一来就能够解决中文乱码的问题。

前言

之前有个项目中使用到了一个前端的download.js库,主要是用来拼接内容然后生成一个.txt或者.csv等文件让用户下载,不过目前这个库不支持了chromesafariwebkit内核的浏览器了。而且下载的内容如果有中文字符的话还有乱码的现象。

用 Node.js 生成 csv 文件

想使用Node.js来生成 csv 文件的话,可以自己拼接好内容后通过fs.writeFile来写入一个文件。不过还是有个问题,如果有中文字符的还是会出现乱码的情况。

接下来就是介绍一下两个库可以解决我们的问题,一个是json2csv 可以通过json的数据去生成csv文件的内容,然后在fs.writeFile,另外一个库则是iconv-lite用来把内容的编码转换为GBK格式,这样一来就能够解决中文乱码的问题。

还有一个值得一提的,就是有其他的小伙伴会用iconv这个库,不过我发现我使用npm还是cnpm都安装不上,所以就使用了iconv-lite这个库。可以注意一下这个问题。

贴一个实例:

var json2csv = require("json2csv");
var iconv = require("iconv-lite");
var fs = require("fs");
var fields = ["field1", "field2", "field3"]; // 这里的内容是不支持中文的。
var myData = {
    "field1": "field1",
    "field2": "field2",
    "field3": "field3",
};
 
json2csv({ data: myData, fields: fields }, function(err, csv) {
  if (err) console.log(err);
  var newCsv = iconv.encode(csv, "GBK"); // 转编码
  fs.writeFile("demo.csv", newCsv, function (err) {
    if (err) console.log(err);
    console.log("Saved done!");
  });
});
相关连接

怎么解决数据保存到csv文件乱码问题

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/86192.html

相关文章

  • superset导出csv中文乱码问题

    摘要:平台自带导出结果的功能,但是运营在使用导出的时候,直接打开文件总会发现中文乱码的情况,小弟现将发现的解决方案提供在此,下面搞起来导出默认编码为,如果需要修改编码类型需要修改两个地方。修改修改把原来的替换成重启搞定 superset平台自带csv导出query结果的功能,但是运营在使用csv导出的时候,直接打开csv文件总会发现中文乱码的情况,小弟现将发现的解决方案提供在此,下面搞起来~...

    haobowd 评论0 收藏0
  • Python 爬虫数据写入csv文件中文乱码解决以及天眼查爬虫数据写入csv

    摘要:爬虫数据写入文件中文乱码,用在中打开文件没有问题,但是用打开却出现了问题,以下为解决方法。 python爬虫数据写入csv文件中文乱码,用’utf-8‘在pycharm中打开文件没有问题,但是用excel打开却出现了问题,以下为解决方法。 (最近在练习爬虫,这个博文是对自己学习的记录和分享,...

    zone 评论0 收藏0
  • PHP生成CSV文件之乱码问题

    摘要:问题生成文件到目录下并下载,下载后发现文件乱码。解决这里我们只要在文件的开始输出头,告诉文件的编码方式,从而让打开时采用正确的编码。第一种在所有内容之前输出第二种也可以直接写入到文件最前端什么是参考百度百科链接 问题 生成CSV文件到/tmp目录下并下载,下载后发现文件乱码。 解决 这里我们只要在文件的开始输出BOM头,告诉windows CSV文件的编码方式,从而让Excel打开CS...

    luckyw 评论0 收藏0
  • mac中python读取csv文件编码报错问题解决

    摘要:之前在写一个简单的分班程序的时候,使用如下命令行读取文件出现了报错含义为程序由于文件编码问题无法读取文件。该行声明了该程序读取文件的编码格式为。如仍报错,可使用方法二解决。第二种使用命令,修改后文件出现乱码。 注:该文章基于mac环境。 之前在写一个简单的分班程序的时候,使用如下命令行读取csv文件, with open(city.csv) as f: lines = f.re...

    paulli3 评论0 收藏0
  • LeagueCsv导出csv乱码问题

    摘要:乱码的原因和字符编码不同版本要求的字符编码不同,以上,可能有错误除了字符编码还有文件头的影响解决方案,用打开导出的文件,另存为时选择如果乱码就选择,在用打开另存为的文档,在导出的文件的开始地方,如表头处加上,如序号有以下几种 乱码的原因:bom和字符编码不同excel版本要求的字符编码不同,2010以上utf8,2007ansi(可能有错误)除了字符编码还有文件头bom的影响 解决方案...

    levinit 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<