Импорт CSV в кодировке utf-8 в метеор с использованием Papa Parse
У меня возникли проблемы с экспортом некоторых данных из одного метеорного приложения (метеорное приложение 1) в виде CSV, а затем загрузка этого файла CSV в отдельное метеорное приложение (метеорное приложение 2) . В частности, хотя файл экспортируется из метеорного приложения 1 с кодировкой utf-8, я не знаю, как "сообщить" метеорному приложению 2, что csv закодирован в формате utf-8. В результате данные, полученные приложением 2 метеора, искажаются с помощью жаргонного выражения utf-8, например "%u2019" и т. Д.
Я использую пакет Clinical: CSV из атмосферы.js, который построен поверх 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, но не смог найти ничего в какой-либо соответствующей документации.
Был бы очень признателен за любую помощь.
1 ответ
Попробуйте указать в коде вариант кодировки, как показано ниже:
Papa.parse(файл, { заголовок: правда, кодировка: "ISO-8859-1", complete: function(results) { var data = results.data Meteor.call('tasks.batch', данные) } });
Использовать encoding
вариант (рядом header
а также complete
) из Papa.parse
Что касается символов "%uxxxx", они вызваны не кодировкой кодировки utf-8, а применяемой вами escape- функцией.
Попробуйте использовать листы Google, у Microsoft Excel есть проблема, а также установите кодировку UTF-8 в парсере papa. Для меня я перешел с Microsoft Excel на лист Google, и это сработало.