我有以制表符分隔的值,我需要使用Java将其导出为文本文件,以便在Microsoft Excel中打开。当制表符分隔值具有中文字符时会出现问题。
我尝试使用UTF-8导出文本文件,但Excel无法解释字符。然后我在记事本中打开导出的文本文件并将其保存为“Unicode”,并开始在Excel中显示正确的章程。
那么有人能告诉我Java中的Notepad“Unicode”是什么吗?
我的代码是:
response.getOutputStream().write(reportHTML.getBytes("UTF-8"));
reportHTML具有制表符分隔值。
This是编码为Unicode的文本文件。
答案 0 :(得分:1)
这意味着"UTF-16LE"
,并且每个java平台实现都是required来支持它。
response.getOutputStream().write(reportHTML.getBytes("UTF-16LE"));
记事本unicode编码还会在文件开头插入UTF-16LE BOM FF FE
。
答案 1 :(得分:0)
尝试将BOM添加到文件的第一个字节。 http://en.wikipedia.org/wiki/Byte_order_mark
答案 2 :(得分:0)
在Windows环境中,当编码称为“Unicode”时,通常指的是UCS-2 or UTF-16。