gpt4 book ai didi

javascript - 将 html 表导出到 Excel javascript 函数特殊字符已更改

转载 作者:数据小太阳 更新时间:2023-10-29 04:59:22 24 4
gpt4 key购买 nike

我有以下将 html 导出到 excel 的函数:

function generateexcel(tableid) {
var table= document.getElementById(tableid);
var html = table.outerHTML;
window.open('data:application/vnd.ms-excel,' + encodeURIComponent(html));
}

一个问题是数据中的特殊字符被转换为其他符号:

  • 1º = 1º
  • é = É

你会如何解决这个问题?是否有任何字符替换 html 以防止它?任何编码选项?

最佳答案

替换字符是一个糟糕的解决方案。

我将 encodeURIComponent 替换为转义并且工作正常,但自 ECMAScript v3 以来不推荐使用转义。

出现此问题是因为 encodeURIComponent 适用于 UTF-8 而 Excel 不适用。

对我来说更好。

将数据编码为 base64 并像这样导出。我使用了来自 https://github.com/carlo/jquery-base64/blob/master/jquery.base64.min.js 的 jquery-base64 插件

并将代码更改为:

window.open('data:application/vnd.ms-excel;base64,' + $.base64.encode(html));

如果不想用jquery,可以用这个base64_encode函数 http://phpjs.org/functions/base64_encode

“Base64 编码/解码已经是现代 (tm) 浏览器的原生功能:btoa(str) 和 atob(str) 是无需任何外部重新实现即可使用的功能。” - chipairon

关于javascript - 将 html 表导出到 Excel javascript 函数特殊字符已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11084564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com