使用Papa Parse在流星中导入utf-8编码的csv

时间:2018-02-02 02:34:44

标签: csv meteor utf-8 papaparse

我无法将一些数据从一个流星应用程序(流星应用程序1)导出为CSV,然后将该CSV文件上传到单独的流星应用程序(流星应用程序2)。具体来说,虽然文件是使用utf-8编码从流星应用程序1导出的,但我不知道如何“告诉”流星应用程序2以utf-8格式编码的csv。结果,流星应用程序2收到的数据被“%u2019”等utf-8术语破坏了

我正在使用临床包:来自atmosphere.js的csv,它建立在Papa Parse之上。

流星应用程序1中相关的代码导出行是:

'click #exportMe':function(){
  var csvContent = CSV.unparse(Tasks.find().fetch());
  window.open('data:text/csv;charset=utf-8,' + escape(csvContent), '_self');
},

流星应用2中相关的代码导入行是:

Template.example.events({
  'change #hiddenUpload': function(event){
    var filesList = event.currentTarget.files;
    var file = filesList[0];
    Papa.parse(file, {
        header:true,
        complete: function(results) {
          var data = results.data
          Meteor.call('tasks.batch',data)
        }
      });
  },
})

我猜想有一种方法可以在导入代码中指定它是用utf-8编码的,但是在任何相关文档中都找不到任何东西。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

使用encoding

header选项(completePapa.parse旁边)

http://papaparse.com/docs#config

对于“%uxxxx”字符,它们不是由utf-8字符集编码引起的,而是由您应用的escape函数引起的。

答案 1 :(得分:0)

尝试使用Google表格,Microsoft Excel出现了问题,并且还在papa解析器上设置了UTF-8编码。对我来说,我从microsoft excel更改为google sheet并且有效。

答案 2 :(得分:0)

在您的代码中,尝试放置如下所示的编码选项:

Papa.parse(file, {
        header:true,
        encoding: "ISO-8859-1",
        complete: function(results) {
          var data = results.data
          Meteor.call('tasks.batch',data)
        }
      });