我有一個 csv 檔案(用分號分隔,所以我使用 d3.dsv 來讀取它)
d3.dsv(";", "Project.csv", function(d) {
console.log(d)
});
但是我在重音所在的地方得到“?”。
我知道該檔案是“latin_1”編碼的,所以我嘗試了這個:
dsvReader = d3.dsv(";", "iso-8859-1");
dsvReader("Project.csv", function(d) {
console.log(d)
});
但我收到以下錯誤:
> net::ERR_FILE_NOT_FOUND
> Uncaught (in promise) TypeError: Failed to fetch
uj5u.com熱心網友回復:
您的第一個片段: d3-fetch 函式在 的結果上d3.dsv使用,它只處理 UTF-8。response.text()fetch
您的第二個片段:您嘗試獲取名為 的檔案iso-8859-1,該檔案可能不存在。沒有d3.dsv接受編碼的引數。
一種解決方案是確保服務器具有 UTF-8 檔案,而不是 Latin-1 檔案。這是最簡單的解決方案:在 2022 年,很少有不使用 Unicode 的正當理由。
另一種是使用fetch自己,或者使用d3.bufferor d3.blob,然后自己將回應轉換為 UTF-8,如Fetching non-utf8 data with XMLHttpRequest using TextDecoder(on buffer) or .readAsText(on blob) 中所述,最后使用d3.dsvFormat(";").parse現在正確的資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/452626.html
標籤:javascript d3.js
上一篇:根據資料為D3和弦路徑著色
下一篇:沒有“翻轉”的最小畫筆大小
