Javascript 到 csv 导出编码问题

标签 javascript csv export-to-csv

我需要将 javascript 数组导出到 excel 文件并下载它,我正在使用这段代码执行此操作。 data 是一个 javascript 对象数组。

var csvContent = "data:text/csv;charset=utf-8,";
data.forEach(function(dataMember, index)
{
    dataString = dataMember.join(",");
    csvContent += index < data.length ? dataString+ "\n" : dataString;
}); 

var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "upload_data" + (new Date()).getTime() + ".csv");
link.click();

在我拥有包含非英语字符(如西类牙语、阿拉伯语或希伯来语)的字符串属性之前,所有这些都可以正常工作。我如何导出所有这些非 ASCII 值?

最佳答案

您应该在文本的开头添加 UTF-8 BOM,例如:

var csvContent = "data:text/csv;charset=utf-8,%EF%BB%BF" + encodeURI(csvContent);

它适用于 Excel 2013。

Demo Fiddle

关于Javascript 到 csv 导出编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19492846/

相关文章:

javascript - Zurb Foundation javascript reInit 模块不工作

javascript - 上传图片到s3 bucket node js

mysql - Ruby CSV 读取多行字段

java - 有没有一种简单的方法来输出按列的 CSV?

javascript - 如何检查是否引用了 javascript 变量,以及从何处引用?

javascript - 使用 php 无法将网络摄像头生成的图像上传到 mysql 数据库

c - 将 CSV 数据绘制成图表

PHP - 将 CSV 文件流式传输到浏览器

mysql - 将 MySQL 数据导出到 CSV 文件时如何保留换行符?

mysql - Hibernate 导出到 csv