1. ホーム
  2. javascript

Javascriptからcsvへのエクスポートのエンコーディングの問題

2023-09-17 01:52:46

質問

私はjavascriptの配列をExcelファイルにエクスポートし、それをダウンロードする必要があります私はこのコードでそれをやっている。

var csvContent = "data:text/csv;charset=utf-8,";
data.forEach(function(dataMember, index)
{
    dataString = dataMember.join(",");
    csvContent += index < data.length ? dataString+ "\n" : dataString;
}); 

var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "upload_data" + (new Date()).getTime() + ".csv");
link.click();

これらのものはすべて、スペイン語、アラビア語、ヘブライ語などの非英語文字を持つ文字列プロパティがあるまで、うまく機能します。この非 ASCII 値をすべて含むエクスポートを作成するにはどうすればよいでしょうか。

どのように解決するのですか。

のように、テキストの先頭にUTF-8 BOMを追加する必要があります。

var csvContent = "data:text/csv;charset=utf-8,%EF%BB%BF" + encodeURI(csvContent);

Excel2013で動きました。

デモ フィドル