【发布时间】:2012-11-28 10:02:13
【问题描述】:
我有制表符分隔的值,我需要使用 Java 将其导出为文本文件,以便在 Microsoft Excel 中打开。当制表符分隔的值有中文字符时,就会出现问题。
我尝试使用 UTF-8 导出文本文件,但 Excel 无法解释字符。然后我在记事本中打开导出的文本文件并将其保存为“Unicode”,它开始在 Excel 中显示正确的章程。
那么有人可以告诉我 Java 中的记事本“Unicode”等价物是什么吗?
我的代码是:
response.getOutputStream().write(reportHTML.getBytes("UTF-8"));
reportHTML 有制表符分隔的值。
This是编码为Unicode的文本文件。
【问题讨论】:
-
在十六进制编辑器中查看文件并确定它是 UTF-8、UTF-16 还是 UTF-32
-
@jlordo 你能推荐一个十六进制编辑器以及如何检查编码。我还链接了在 excel 中正常工作的正确文本文件
-
Notepad++ 告诉我您的文件在 UCS-2 Little Endian 中。 Here is a List 所有支持的编码。
-
@jlordo 我在您提供的列表中没有看到 UCS-2 Little Endian,所以这意味着我们不能使用 java 来执行此操作?
-
Excel 应该能够处理 UTF-8(可能需要 BOM,但不这么认为),也许您的实施有误。您可以使用 UTF-16,阅读 here 以查看与 UCS-2 的区别。
标签: java excel unicode encoding notepad