首页 > 解决方案 > 读取带有希伯来语内容的 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();
}

标签: javascriptcsv

解决方案


尝试通过调用切换过时XMLHttpRequestfetch并使用async/await异步加载文件并获取内容。

回调范式已被Promiseand 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();

推荐阅读