JavaScript希伯来文CSV解析问题



所以我得到了一个csv文件保存为csv -UTF-8文件从excel右边是visual studio,左边是excel。

当我尝试用PapaParse/csv-parser解析时,我仍然在格式这意味着编码:PapaParse尝试:

papa.parse(file, {
worker: true, 
step: function (result) {
count++; 
console.log(result.data[0])
},
complete: function (results, file) {//
console.log('parsing complete read', count, 'records.');
}
});

csv-reader试题:

const csv = require('csv-parser');
const results = [];
fs.createReadStream('Cities.csv')
.pipe(csv())
.on('data', function (datarow) {
results.push(datarow);
})
.on('end', function () {
console.log(results.toString('utf-8");
});

在这两种情况下,输出都在看不懂希伯来字母

在我看来,您正在将原始块缓冲区管道到csv,而不是使用UTF-8编码转换为字符串的结果。您没有告诉createReadStream为您处理任何编码工作,因此它将读取原始数据并将其传递给csv函数(因为您正在管道到它)作为Buffer实例。

与其读取原始数据然后进行转换,不如告诉createReadStream您希望它通过其options参数为您处理转换:

const csv = require('csv-parser');
const results = [];
fs.createReadStream('Cities.csv', 'utf-8')
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−−^^^^^^^^^
.pipe(csv())
.on('data', function (datarow) {
results.push(datarow);
})
.on('end', function () {
// Use `results` here (it's an array of objects according to the
// csv-parser documentation; calling `toString` on it probably isn't
// what you want)
});

你可以试着添加这个:

格式:"UTF-8"

papa.parse(file, {
worker: true, 
step: function (result) {
count++; 
console.log(result.data[0])
},
format: "UTF-8"
complete: function (results, file) {//
console.log('parsing complete read', count, 'records.');
}
});

问题不在于代码,而在于控制台属性。我必须更改字体,以便控制台可以正确显示希伯来字母。

最新更新