0

我想编写制表符分隔的 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 时,我显示了一些无效字符:

在此处输入图像描述

似乎这是一个 UTF8 问题。所以我决定在写入任何信息之前将 UTF8 BOM 添加到文件中。然后excel向我展示了这个:

在此处输入图像描述

但有趣的是——当我使用相同的方法(添加 UTF8 BOM)来编写 CSV 文件(使用“,”分隔符)时,效果很好。我会很感激任何帮助,谢谢!

编辑:我已经重现了该错误,但报告中的信息不同(不同的列名)。无论如何,这是十六进制向我展示的

带有 UTF8 BOM 的文件:

在此处输入图像描述

和没有 UTF8 BOM 的同一个文件:

在此处输入图像描述

似乎在添加 UTF8 BOM excel 之后才开始忽略制表符分隔符。我仍然不知道该怎么办。

4

0 回答 0