问题描述
Java生成UTF-8编码的csv,用Excel打开产生中文乱码问题。
因为Excel打开不是用的UTF-8编码,导致错误。
解决思路
让Excel知道csv是UTF-8编码的,用此编码打开,这样就不会产生乱码问题。
解决方案
在csv文件前加上BOM,如下
// 由于csv是UTF-8格式,用Excel打开就会乱码,所以加个BOM告诉Excel用UTF-8打开
String csv = new String(new byte[] { (byte) 0xEF, (byte) 0xBB,(byte) 0xBF });
csv += csv文件内容;
输出csv到具体文件或浏览器