UTF-8 csv encoding
UTF-8 csv encoding
我有一个页面,可以作为我正在做的一项研究的认知测试。
JS文件输出一个CSV文件,其中包含详细的测试结果。
一些文本是希伯来语,CSV 在 Excel 中显示乱码。
我尝试了以下方法:
var csvContent = "data:text/csv;charset=utf-8,";
但我得到相同的结果:
׳©׳—׳•׳¨ ׳¡׳’׳•׳ gray
׳©׳—׳•׳¨ ׳™׳¨׳•׳§ yellow
׳©׳—׳•׳¨ ׳׳“׳•׳ pink
׳׳₪׳•׳¨ ׳׳₪׳•׳¨ purple
׳™׳¨׳•׳§ ׳›׳×׳•׳ #FE642E
׳™׳¨׳•׳§ ׳¦׳”׳•׳‘ red
׳׳₪׳•׳¨ ׳©׳—׳•׳¨ pink
׳׳₪׳•׳¨ ׳›׳×׳•׳ gray
׳™׳¨׳•׳§ ׳¦׳”׳•׳‘ purple
׳׳“׳•׳ ׳׳₪׳•׳¨ pink
- JSFiddle 上的整个代码
我做错了什么?
正如阿拉斯泰尔指出的那样,如果您希望 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的名字。
唯一要做的就是在 csv 字符串的开头添加"''ufeff":
var csv = "'ufeff"+CSV;
同样的答案从这里:相同的答案
我从这里找到了解决方案:类似的问题和解决方案
我把它们放在这里,以防万一你正在寻找解决方案。
Excel
不会自动识别 UTF-8 文档的编码。为此,您需要在文件的最开头添加一个 UTF-8 BOM ("''uefbbbf")。
您还可以在 Excel 中打开之前使用记事本++验证 csv 文件的编码。如果没有 BOM,Notepad++ 应将类型标记为"UTF-8 w/o BOM"。使用 BOM,它将显示"UTF-8"。
相关文章:
- 在POST中将html表作为csv提交
- 通过CSV文件上载更新数据库表
- 在.csv文件中写入学位符号
- PERL-下载CSV文件不完整
- 将CSV文件从URL导入Node.js
- Get方法获取csv文件的内容
- 如何将csv数据导入netsuite
- 将JSON转换为放入Sdcard中的CSV文件
- 将基本CSV数据加载到D3
- 在csv文件名中使用西班牙语字符
- 如何使用d3.js从csv文件中绘制areaplot?请任何人分享代码
- 正在以javascript读取本地csv文件
- d3.csv有很多数据,只画了一个月
- 处理字段中带有换行符的csv文件-node.js
- 编辑CSV数组中的项目-快速CSV node.js
- 无标题Javascript JSON数组->CSV导出
- 如何将CSV数据从变量下载到CSV文件
- Safari 5.1.7下载文件名未知的csv文件
- csv数据中的新数组
- UTF-8 csv encoding