csv - 如何在 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
如何正确读取此文件?预先感谢您的帮助。
解决方案
在最新版本的 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>
推荐阅读
- r - R中的累积和不适用于降序数据
- excel - 比较两个无序的工作表,然后突出显示差异
- javascript - 为什么 .each 与 jQuery 选择器一起使用,然后又与 $(this) 一起使用
- laravel - 如何在 Laravel 6.X 中传递符合 PSR-6 的缓存适配器?
- javascript - 当通过 props 传入时,为什么需要 state 变量的 setter 作为 useEffect 的依赖项?
- python - 将 s3 上的 svs 文件直接下载到 AWS Lambda 中的 RAM 或无需本地下载即可打开
- spring-data-jpa - 在@DataJpaTest 之后处理 h2 数据库
- c# - 属性自动生成的夹具约束
- chilkat - Chilkat - SFTP - 身份验证失败或部分成功
- azure - 使用嵌套的“reference()”调用时出现 InvalidTemplate 错误