我无法将一些数据从一个流星应用程序(流星应用程序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编码的,但是在任何相关文档中都找不到任何东西。
非常感谢任何帮助。
答案 0 :(得分:0)
使用encoding
header
选项(complete
和Papa.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) } });