在将数据导出为CSV时,在货币符号中添加垃圾字符

时间:2014-11-07 13:09:12

标签: javascript html export-to-csv

我很奇怪问题是每当我在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>

当我在记事本中打开相同的内容时。我看不到垃圾角色。如果你能帮我解决一下,我将非常感激。

1 个答案:

答案 0 :(得分:0)

字符集应该是UTF-8。另外检查一下£的unicode,我相信它是u2034。您可以找到图表here,并将其列为U + 00A3。如果您有比记事本更先进的东西,例如Notepad ++,请在打开时间时检查编码类型。 Excel可能很挑剔。