用utf8编写制表符分隔的Excel

时间:2013-09-24 08:10:20

标签: java excel utf-8 byte-order-mark tab-delimited

我想写制表符分隔的utf8 excel文件。 我的PrintWriter看起来像这样:

Charset utf8Charset = Charset.forName("UTF-8");
OutputStreamWriter osw = new OutputStreamWriter(os, utf8Charset);
PrintWriter printWriter = new PrintWriter(new BufferedWriter(osw, BUFFER_SIZE));

所以看起来它必须在utf8中编写符号。 但是当我打开xls时,我会显示一些无效的字符:

enter image description here

好像是UTF8问题。所以我决定在写入任何信息之前将UTF8 BOM添加到文件中。然后excel告诉我这个:

enter image description here

但有趣的是 - 当我使用相同的方法(添加UTF8 BOM)来编写CSV文件(使用“,”分隔符)时,它运行良好。 我要感谢任何帮助,谢谢!

编辑: 我已经复制了这个bug但报告中有不同的信息(不同的列名)。无论如何这里是hex告诉我的

带有UTF8 BOM的

文件:

enter image description here

和没有UTF8 BOM的同一文件:

enter image description here

似乎在添加UTF8 BOM之后,excel开始忽略制表符分隔符。我还是不知道该怎么做。

0 个答案:

没有答案