热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Node.js处理csv乱码题目

媒介之前有个项目中运用到了一个前端的download.js库,主如果用来拼接内容然后天生一个.txt或许.csv等文件让用户下载,不过现在这个库不支持了chrome和safari等

媒介

之前有个项目中运用到了一个前端的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文件乱码题目


推荐阅读
  • 这篇“Webpack是怎么工作的”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 前言:原本纠结于Web模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中ev ... [详细]
  • 前言:原本纠结于Web 模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中eval函数。虽然eval函 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • zabbix中文乱码的问题
    在使用zabbix时,有时候会出现中文乱码的问题,如下:因为zabbix自身对中文简体的支持不完善,需要我们手动的去上传新的字体进行替换:1、在windows获取字体库文件在Windows上的 ... [详细]
  • 计算机网络计算机网络分层结构
    为了解决计算机网络复杂的问题,提出了计算机网络分层结构。计算机网络分层结构主要有OSI7层参考模型,TCPIP4层参考模型两种。为什么要分层不同产商 ... [详细]
  • 从事办公文书的朋友们是否有过这样的感触:为了编辑的方便有时需要自己制作好的Word方案转为PDF格式,然后再分享给他人阅读,那么如何将Word完整地转换为PDF呢?这里笔者将自己总 ... [详细]
author-avatar
洋索菲命_563
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有