0

.csvビルマ語のテキストをファイルに書き込みたい。ビルマ語のテキストをファイルに書き込んだ後、.csvそのファイルを開きましたMS Officeが、ビルマ語のテキストが表示されません。私のPCにはミャンマー語のフォントがセットアップされています。以下は私のコードです:

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

1 に答える 1

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 がダブルクリックで開くようにすることもできます。

于 2013-07-18T08:04:03.890 に答える