首页 > 解决方案 > 如何在 d3.js 中正确读取非标准编码的 csv 文件

问题描述

我有一个这样的 small.csv 文件:

Game,Country,Number of Users,Average Rating
Formula D,Venezuela,1,9
Formula Dé,Australia,16,7.09
Ticket to Ride: Märklin,Argentina,1,9.2
Zooloretto,Vietnam,1,7.2

我尝试以标准 D3.js 方式读取文件:

d3.csv('small.csv').then(data => console.log(data));

问题是第二个和第三个游戏的名称没有正确编码。

游戏名称应为:Formula Dé 而不是 Formula D√© Ticket to Ride: Märklin 而不是 Ticket to Ride: M√§rklin

如何正确读取此文件?预先感谢您的帮助。

标签: csvd3.jsencoding

解决方案


在最新版本的 d3 (v7.1.1) 中似乎没有任何问题。片段如下:

d3.csv(
  'https://gist.githubusercontent.com/shreshthmohan/5af5d1f0a62858bc2cd380838dc00db6/raw/e394fbc220f34f8c8b3adde0ec8e2c8cd2b71726/small.csv',
).then(data => {


  d3.select('body')
    .selectAll('p')
    .data(data)
    .join('p')
    .text(d => d.Game)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.1.1/d3.min.js" integrity="sha512-COTaPOlz12cG4fSfcBsxZsjauBAyldqp+8FQUM/dZHm+ts/jR4AFoJhCqxy8K10Jrf3pojfsbq7fAPTb1XaVkg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>


推荐阅读