javascript - JavaScript 希伯来语 CSV 解析问题
问题描述
所以我得到了一个 csv 文件,它从右边的 excel 中保存为 CSV -UTF-8 文件,它在左边的 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阅读器尝试:
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");
});
在这两种情况下,输出都是 <?> cant read hebrew chars
解决方案
在我看来,您将原始块缓冲区传送到csv
,而不是使用 UTF-8 编码转换为字符串的结果。您没有告诉createReadStream
为您处理任何编码工作,因此它将读取原始数据并将它们作为实例传递给csv
函数(因为您正在传递给它) 。Buffer
与其读取原始数据并随后进行转换,不如告诉您希望它通过其options 参数createReadStream
为您处理转换:
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)
});
推荐阅读
- python - Python pip install“错误:命令错误退出状态1”
- javascript - React Router Redirect - 将参数添加到路径名
- java - 当我发送消息时,我可以在 firebase 中看到它,但我无法在模拟器或手机上阅读它,它什么也没有显示
- mysql - 无法安装 mysql-server 包
- java - VPN 开启时无法访问 REST 端点
- python - 通过 websocket 问题进行币安流交易
- python - 我需要修复此代码未完成到最后
- javascript - .sort() 对具有嵌套日期的对象
- python - Kivy/Buildozer 没有名为“google.oauth2”的模块
- javascript - Python,无法使用 BS 和请求抓取指向 pdf 文件的链接