gpt4 book ai didi

javascript - UTF-8 csv 编码

转载 作者:行者123 更新时间:2023-11-30 08:39:42 25 4
gpt4 key购买 nike

我有一个页面可以作为我正在进行的一项研究的认知测试。

JS 文件输出一个包含详细测试结果的 CSV 文件。

一些文本是希伯来语,CSV 在 Excel 中显示乱码。

我尝试了以下方法:

var csvContent = "data:text/csv;charset=utf-8,";

但我得到了相同的结果:

׳©׳—׳•׳¨    ׳¡׳’׳•׳ gray
׳©׳—׳•׳¨ ׳™׳¨׳•׳§ yellow
׳©׳—׳•׳¨ ׳׳“׳•׳ pink
׳׳₪׳•׳¨ ׳׳₪׳•׳¨ purple
׳™׳¨׳•׳§ ׳›׳×׳•׳ #FE642E
׳™׳¨׳•׳§ ׳¦׳”׳•׳‘ red
׳׳₪׳•׳¨ ׳©׳—׳•׳¨ pink
׳׳₪׳•׳¨ ׳›׳×׳•׳ gray
׳™׳¨׳•׳§ ׳¦׳”׳•׳‘ purple
׳׳“׳•׳ ׳׳₪׳•׳¨ pink

我做错了什么?

最佳答案

正如 Alastair 指出的那样,如果您希望 excel 正确运行,您将希望在文件的开头有一个 BOM。但我认为应该以不同的方式指定。这是一个完整的工作示例,说明如何下载(已编码)在浏览器中构建的 csv 文件:

// not needed with firefox, chrome, ie11:
// window.URL = window.URL || window.webkitURL;

var data = "a,column b,c\nНикола Тесла,234,365";

// add UTF-8 BOM to beginning so excel doesn't get confused.
// *THIS IS THE KEY*
var BOM = String.fromCharCode(0xFEFF);
data = BOM + data;

var btn = document.createElement("button");
btn.appendChild(document.createTextNode("Click Me!"));
btn.onclick = function() {
var blob = new Blob([data], {type: "text/csv;charset=UTF-8"});
if (window.navigator && window.navigator.msSaveOrOpenBlob) {

// ie
var success = window.navigator.msSaveOrOpenBlob(blob, "Name of File.csv");
if (!success) {
alert("Failed");
}
} else {

// not ie
var a = document.createElement("a");
a.href = window.URL.createObjectURL(blob);
a.download = "Name of File.csv";
document.body.appendChild(a);
a.click();

// is there a problem with removing this from the DOM already?
a.parentNode.removeChild(a);
}
};
document.body.appendChild(btn);

以上内容适用于当前的 Firefox、Chrome 和 IE11——如果您使用 excel 打开,您将看到 Nicola Tesla 的塞尔维亚西里尔名字。

关于javascript - UTF-8 csv 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27802123/

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