我一直在尋找答案,現在我想我已經結束了無限循環的搜索。在MS Excel中打開.csv文件給出錯誤的Utf-8格式(Javascript)
我正在使用JavaScript將數據導出到.csv文件。這裏沒有任何問題,它在Google電子表格中顯示完美無瑕的蘋果數字&。對我來說不幸的是,我的客戶在Windows的Mac &上使用MS Excel,並且至少不是技術精湛的人。因此,在Excel中使用「導入」選項是爲了真正推動它們的界限。雖然在選擇正確的選項後它會提供正確的格式。
因此,問題是:.csv文件在雙擊或選擇「open with ..」時未在Excel中以正確的格式打開。例如,「Ö」顯示爲「ö」。我遇到了很多答案,建議將BOM添加到文件中,但是我還沒有找到正確的方法。這是一個字符串值,我把它放在第一個單元格中,或者這是寫入文件時需要在JavaScript代碼中的東西嗎?
我在.csv文件中使用「,」作爲分隔符。
任何可以解決這個問題的幫助都會帶來永恆的感激和欣賞。
該應用程序是在Appcelerator Titanium中用JavaScript編寫的iOS和Android應用程序。寫.csv文件中的代碼如下,其中「輸入」是一個數組:
exports.exportCsvData = function(input)
{
var rowTxt = "";
for(var i=0;i < input.length; i++){ // row iteration
for(var j = 0; j < input[i].length; j++){ // column iteration
rowTxt += '"' + input[i][j] + '"';
if(j < (input[i].length-1))
{
rowTxt += ',';
}
}
rowTxt += '\n';// adding new line at end of row
}
// creating output file in application data directory
var outputFile = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory,'min_traningsdagbok.txt');
// writing data in output file
outputFile.write(rowTxt);
if(outputFile.exists){
Ti.API.info("CSV generated!!!");
}
// return output file path
return outputFile.nativePath;
};