实现目的是把页面上表格里的数据取出来,放到字符str里,然后创建一个超链接的标签来导出。为了使得代码简化,把从表格里取数的过程去掉,以下是关键代码:
var str="序号,性别,姓名,\n,1,男,张三,\n,2,女,李丽,"; str = encodeURIComponent(str); var uri = 'data:text/csv;charset=utf-8,' + str; var downloadLink = document.createElement("a"); downloadLink.href = uri; downloadLink.download = "export.csv"; document.body.appendChild(downloadLink); downloadLink.click(); document.body.removeChild(downloadLink);
现在的问题是,导出后打开文件,发现中文都是乱码。尝试过在页面加以下代码来限制编码:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
但是问题没解决。各位大侠帮忙找找原因呢?或者有其他方法导出数据。
用Encoding.Default格式限制编码,代码页的默认编码是ANSI,一般操作系统的默认编码也是ANSI,如果不是,你试着保存一个文件,看下面保存的编码格式是什么格式。下面保存的编码格式是什么格式,你导出文件时也应该用这个格式的编码。
应该是你保存的编码和页面上的编码不一致造成的。
输出的时候,必须指定好编码。是输出的格式。