我很奇怪问题是每当我在csv中导出具有货币符号的数据时,它在货币符号旁边的数据中添加了垃圾额外字符。
例如,如果我的数据=法国 - 管理费1 x£100 我得到的结果就像=法国 - 当我在Excel中打开它时,管理费1 x×100英镑。我的代码是:
<html>
<head>
<script type="text/javascript">
function CreateCSV()
{
var buffer = "France - Admin Fee 1 x £100";
buffer = "\"" + buffer + "\"";
// buffer = "" + euro; //"\u2034";
var uri = "data:text/csv;charset=UTF," + encodeURIComponent(buffer);
var fileName = "InvoiceData.csv";
var link = document.createElement("a");
if (link.download !== undefined) { // feature detection
// Browsers that support HTML5 download attribute
link.setAttribute("href", uri);
link.setAttribute("download", fileName);
}
else if (navigator.msSaveBlob) { // IE 10+
link.addEventListener("click", function (event) {
var blob = new Blob([buffer], {
"type": "data:text/csv;charset=UTF;"
});
navigator.msSaveBlob(blob, fileName);
}, false);
}
else {
// it needs to implement server side export
}
link.innerHTML = "Export to CSV";
link.click();
}
</script>
</head>
<body>
<input type="button" value="Download CSV" onclick="CreateCSV()" />
</body>
</html>
当我在记事本中打开相同的内容时。我看不到垃圾角色。如果你能帮我解决一下,我将非常感激。
答案 0 :(得分:0)
字符集应该是UTF-8。另外检查一下£的unicode,我相信它是u2034。您可以找到图表here,并将其列为U + 00A3。如果您有比记事本更先进的东西,例如Notepad ++,请在打开时间时检查编码类型。 Excel可能很挑剔。