2011-12-18 60 views
0

當我使用這樣的事情在UTF-8頁的字符集:JavaScript的數據URI保存

var data = "a\tb\tc\r\nd\te\tf"; 
window.location.href = "data:text/csv;charset=utf-8," + encodeURIComponent(data); 

強制瀏覽器下載的文本,並將其保存。我工作得很好,除非當我在Excel中打開文件時,打開不正確(它既不讀取分隔符也不是阿拉伯字符)..我需要「導入數據」來指定文件是UTF-8,當我做這工作正常......當我在記事本中打開文件並將其重新保存在unicode中...它工作正常。有沒有辦法迫使它從一開始就保存在unicode中?或者讓excel中的csv文件正確打開。

我試圖將其更改爲「字符集= UTF-16」,但沒有奏效。

PS:我不能改變網頁的字符集。

任何幫助表示讚賞。 感謝

回答

1

你的JS代碼產生是

a b c 
d e f 

但有效的應該是

a,b,c 
d,e,f 

代碼

var data = "a,b,c\r\nd,e,f"; 

TA B-分隔格式

a b c 
d e f 

在代碼

var data = "a\tb\tc\r\nd\te\tf"; 

CSV是短逗號分隔值

+0

我不能使用逗號,因爲我有在它的逗號數值。 – AhHatem 2011-12-18 16:20:23

+0

而且我可以使用「;」它會被正確分離,但阿拉伯字符不會被讀取。 – AhHatem 2011-12-18 16:21:12

+0

@AhHatem您可以使用製表符分隔(見我的回答的第2部分),以及關於閱讀,你確定它的保存和不讀UTF-16數據的問題? – 2011-12-18 16:22:18

2

這是你需要什麼,一個小插件:

'data:text/csv;charset=utf8,' + '\uFEFF' + encodeURIComponent(csv) 

這個插件( '\ uFEFF'),使得它真正的 「UTF-8」,沒有它,這將是:「UTF -8 W/O BOM」

+0

謝謝:)這是非常有用的 – Gabriel 2016-03-26 15:53:06