javascript - 读取带有希伯来语内容的 CSV 文件
问题描述
我正在尝试读取包含希伯来语内容的 CSV 文件,但我收到了乱码。
当我在 Excel 中打开文件时,我可以正确看到希伯来语内容。
function loadDoc() {
readTextFile(function(csv) {
data = csv
console.log(data);
});
}
function readTextFile(callback) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
callback(this.responseText)
}
};
xhttp.open("GET", "./MyFile.csv", true);
xhttp.send();
}
解决方案
尝试通过调用切换过时XMLHttpRequest
的fetch
并使用async
/await
异步加载文件并获取内容。
回调范式已被Promise
and async
/取代await
。
const loadText = async (filename) => {
const file = await fetch(filename);
const text = await file.text();
return text;
};
const main = async () => {
const csvText = await loadText("./MyFile.csv");
console.log(csvText);
};
main();
您可以使用Papa Parse将 CSV 加载为 JSON :
<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.3.0/papaparse.min.js"></script>
const loadText = async (filename) => {
const file = await fetch(filename);
const text = await file.text();
return text;
};
const loadCsvAsJson = async (filename) => {
const text = await loadText(filename);
return Papa.parse(text);
};
const main = async () => {
const jsonData = await loadCsvAsJson("../public/MyFile.csv");
console.log(jsonData);
};
main();
推荐阅读
- flutter - 常量集中元素的类型不能覆盖 '==' 运算符,但类型 'LatLng' 可以
- java - 具有 2 个变量的 while 循环函数复杂度
- c++11 - 即使使用了 auto && 是否仍然需要使用 std move
- java - 如何将 Enum 用于单例?
- td-engine - TDengine的taos-jdbc绑定参数,得到一个意想不到的问题
- android - Exoplayer - 需要帮助将此下载图像从自定义布局附加到活动,以便我可以定义点击事件
- node.js - NodeJs - 猫鼬函数总是返回 null
- flutter - Flutter dio 图像上传不工作引发服务器 401 错误,但在邮递员中工作
- angular - AG Grid 从 v18.2.0 升级到 v20.0.0 破坏树数据不起作用
- memory - 如何编辑程序的内存并用 NOP 替换某个地址?