在 Google Chrome 中,window.open 在带有 # 符号的 csv 上失败

In Google Chrome, window.open fails on csv with # symbol in it

window.open(encodeURI('data:text/csv;charset=utf-8,name,color\njohn,#000000'));

在 chrome 中,上一行下载一个 csv 内容如下:

name,color
john,

似乎忽略了#符号后面的一切。 你知道为什么吗?

ps: 在 Safari 上它似乎运行良好,它会打开一个包含所有内容的新闻标签

因为#表示文档中某个位置的开始。

您必须将其转义为 %23:

'data:text/csv;charset=utf-8,' + encodeURIComponent("name,color\njohn,#000000")

结果 data:text/csv;charset=utf-8,name%2Ccolor%0Ajohn%2C%23000000 效果应该更好。