2013-07-18 60 views
0

我想將緬甸文本寫入.csv文件。在將緬甸文本寫入.csv文件後,我用MS Office打開該文件,但它不顯示緬甸文本。 緬甸字體在我的電腦中設置。 以下是我的代碼:如何將緬甸文本寫入CSV文件android

OutputStreamWriter char_output = new OutputStreamWriter(new  

FileOutputStream(CSV.getAbsolutePath().toString()), 
Charset.forName("UTF-8").newEncoder()); 
char_output.write(message + str); 
char_output.write("\n"); 
for (int i = 0; i < pList.size(); i++) 
{ 
    StringBuilder sb = new StringBuilder(); 
    sb.append(pList.get(i).getOrderNumber()).append(",").append(pList.get(i).getProductName()).append(","); 
    sb.append(pList.get(i).getProductDiscription()).append(",").append(pList.get(i).getWeightKg()).append(","); 
    sb.append(pList.get(i).getWeightViss()).append(",").append(pList.get(i).getQty()).append(","); 
    sb.append(pList.get(i).getDate()).append("\n"); 
    char_output.write(sb.toString())`FileOutputStream(CSV.getAbsolutePath().toString()), 
} 
char_output.close(); 

回答

0

很多人會說,使用CSV庫。

而不是Charset.forName("UTF-8").newEncoder()它只需使用"UTF-8",但沒有錯。

而不是Windows下的「\ n」\ r \ n「可能會更方便。 (System.getProperty("file.encoding")將採取Android的「\ n」)。

您需要處理逗號和引號。如果一個字符串值包含一個逗號,那麼它應該帶有雙引號。每一個內部的雙引號自我逃脫,這是翻了一番。

而不是逗號,也使用分號。更好的是製表符"\t"

要檢測UTF-8,您可以在文件的開頭寫入BOM字符。這是一個零寬度的空間。 BOM = Byte Order Mark,引用UTF-16LE和UTF-16BE(反轉字節對)。

sb.append("\uFEFF"); // Add a BOM at the begin of file. 

結局可能是名爲「.csv」的文件,但你也可以撒謊,並給它一個結尾是「.xls」,讓Excel中通過雙擊打開它。