2016-05-26 10 views
2

こんにちは私は、角度のWebアプリケーションでいくつかのフィルタリングされたデータに基づいてCSVファイルを生成しています。Angular download csv file国際的な文字

私のcsvStringに送信する入力は次のとおりです。 TorupBakkegård(Middelfartvej 105); CoopBrøndby; (Holkebjergvej 54);

私はExcelファイル開くと、出力は常に台無しにされています。私はメモ帳で開いたときに TorupBakkegÃ¥RD(Middelfartvej105)CoopBrøndby(Holkebjergvej54)

は、しかし、それは大丈夫ですので、それだけでMSエクセル(使用します最新版)が破損しているようです。 TorupBakkegård(Middelfartvej105);CoopBrøndby(Holkebjergvej54);

vm.downloadExcel = function (bookings) { 
    var csvRows = []; 
    var csvHeading = "Afhentningsadresse;Modtager"; 

    csvRows.push(csvHeading + "\n"); 
    for (var i = 0; i < bookings.length; i++) { 
     var csvRow = ""; 
     csvRow += bookings[i].pickupAddress + ";"; 
     csvRow += bookings[i].customerAddress + ";"; 
     csvRows.push(csvRow + "\n"); 
    } 
    var csvString = csvRows.join("%0A"); 
    var a = document.createElement('a'); 

    a.href = 'data:application/csv;charset=Windows-1252,' + csvString; 
    a.target = '_blank'; 
    a.download = 'myFile.csv'; 

    console.log(a.href); 
    document.body.appendChild(a); 
    a.click(); 

答えて

2

我々はBOMを言及しなかったことを考え出した研究のビット後:

、私はいくつかのエンコーディングで試してみました、Excelは、単にここで を気にしないコードはjavascriptのようです。

BOMは、実際のファイルのエンコードを担当します。 だから変更後:付き

a.href = 'data:application/csv;charset=Windows-1252,' + csvString; 

a.href = 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURI(csvString); 

すべてがうまく動作します。

クレジットに行く:答えるために、ガーゴ・ナギー: Javascript to csv export encoding issue

関連する問題