【发布时间】:2021-04-08 12:04:49
【问题描述】:
我尝试创建一个可以下载 csv 文件的按钮。我必须使用 windows-1251 字符集制作文件。 但无论我做什么,文件都以 utf-8 结尾。现在我正在尝试类似的东西:
async createCsv(result) {
const arrData = result.data
const aliases = result.aliases
let csvContent = [
Object.keys(arrData[0]).map(item => aliases[item]).join(";"),
...arrData.map(item => Object.values(item).join(";"))
]
.join("\n")
.replace(/(^\[)|(\]$)/gm, "");
const data = new Blob([csvContent], {
type: "text/csv;charset=windows-1251;"
});
const link = document.createElement("a");
link.setAttribute("href", URL.createObjectURL(data));
link.setAttribute("download", (new Date).toLocaleString() + ".csv");
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
而且文件是 utf-8 格式。 有没有办法改变字符集?
【问题讨论】:
-
您真的需要 Windows-1251 吗?它是已被 UTF-8 取代的过时 ISO 标准的 Microsoft 特定变体。更新预期这种过时编码的系统可能是解决此问题的更好方法。
-
@Quentin,您无法更改不受您控制的系统。
标签: javascript character-encoding