如何将缅甸文写入CSV文件android

时间:2013-07-18 07:43:56

标签: java android

我想将缅甸文写入.csv文件。将缅甸语文本写入.csv文件后,我用MS Office打开该文件,但它没有显示缅甸语文本。 在我的电脑中设置了缅甸字体。 以下是我的代码:

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();

1 个答案:

答案 0 :(得分:0)

许多人会说,使用CSV库。

使用Charset.forName("UTF-8").newEncoder()代替"UTF-8",但不是错误。

而不是Windows下的“\ n”“\ r \ n”可能更方便。 (System.getProperty("file.encoding")会使用Android的“\ n”。)

您需要处理逗号和引号。如果字符串值包含逗号,则它应该带有双引号。每个内部双引号都是自我逃脱的,加倍。

使用分号代替逗号。更好的是标签字符"\t"

要检测UTF-8,您可以在文件开头写一个BOM字符。这是零宽度空间。 BOM =字节顺序标记,参考UTF-16LE和UTF-16BE(反向字节对)。

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

文件结尾可能是“.csv”,但你也可能撒谎,并给它一个结尾“.xls”让Excel通过双击打开它。