Javascript 导出 CSV 数据 URI 不显示韩语字符



我正在使用以下代码

var uri = 'data:text/csv;charset=utf-8,uFFFE' + escape(str);

当我在UI中单击下载CSV按钮时,上面的代码被触发,csv文件将被下载。

问题是当我打开csv文件时,我看到韩语字符未正确显示,显示为" %uBC29%uAC08">

问题

  • 如何在 CSV 中正确显示韩语字符。

代码完全按照您的编程执行操作:

var s = "방갈";
console.log(escape(s)); // %uBC29%uAC08


更新

考虑使用encodeURIComponent

var s = "방갈";
console.log(encodeURIComponent(s)); // %EB%B0%A9%EA%B0%88

这看起来像UTF-8%编码。

从文档中:

转义((

警告:尽管escape()并未严格弃用


。程序员在编写新的 ECMAScript 代码时不应该使用或假设这些特性和行为的存在。。

— MDN JavaScript 参考 - escape((


更新 #2

请考虑使用 Blob 而不是数据 URI:

var blob = new Blob([s], { type: "text/csv;charset=utf-8" });
var uri =  URL.createObjectURL(blob); 

坦率地说,数据URIS已经过时了。

欲了解更多信息,

  • MDN Web API 参考 - Blob 构造函数
  • MDN Web API 参考 - URL.createObjectURL

相关内容

  • 没有找到相关文章

最新更新