2017-08-11 11 views
0

Javascriptを使用してCSVレポートをダウンロードしようとしていますか?しかし、CSVのエンコードの問題に直面しています。 &&として取得しています。以下は私のJSコードです。私はGoogleからのソリューションを試みたが役に立たなかった。アンパサンドのCSV角度2のエンコードの問題

JSONToCSVConvertor(ReportTitle, ShowLabel) { 
    let csv = []; 

    var tableId = document.querySelector('table').getAttribute('id'); 

    var headers = document.querySelectorAll("table#"+tableId+" tr"); 

    for (var i = 0; i < headers.length; i++) { 

    var row = [], cols = headers[i].querySelectorAll("td, th"); 

    for (var j = 0; j < cols.length; j++) 

     row.push(cols[j].innerHTML); 


    csv.push(row.join(", ")); 

} 

this.downloadCSV(csv.join("\n"), sampleTitle); 

downloadCSV(csv, filename) { 
    var csvFile; 
    var downloadLink; 

    var uri = 'data:text/csv;charset=utf-8' + encodeURI(csv); 

// Download link 
    downloadLink = document.createElement("a"); 


    downloadLink.href = uri; 

    downloadLink.download = filename + ".csv"; 

    // Hide download link 
    downloadLink.style.display = "none"; 

    // Add the link to DOM 
    document.body.appendChild(downloadLink); 

    // Click download link 
    downloadLink.click(); 

    document.body.removeChild(downloadLink); 
} 

CSVで正確な特殊文字を取得するにはどうすればよいですか?どんな助け?

+0

'encodeURI'は変更されません'& '...あなたはおそらく' encodeURIComponent'をよろしいです –

答えて

0

ない、これはやり過ぎであれば...

function encodeRFC5987ValueChars(str) { 
    return window.encodeURIComponent(str) 
     .replace(/['()]/g, window.escape) 
     .replace(/\*/g, '%2A') 
     .replace(/%(?:7C|60|5E)/g, window.unescape); 
}