更新时间:2021-08-22
导致原因:由于csv格式的文件用UTF-8编码后,Excel默认用UTF-8 BOM字符集解码数据源;
解决方案:在将数据写入文件中时,并提前写入十六进制的 ef、bb、bf。
PrintWriter writer = null;
try {
// 获取输出流并使用UTF-8 BOM编码
byte[] uft8bom = {(byte) 0xef, (byte) 0xbb, (byte) 0xbf};
OutputStream out = getResponse().getOutputStream();
out.write(uft8bom);
// 字节流转字符流 (按需处理)
OutputStreamWriter osw = new OutputStreamWriter(out, "UTF-8");
writer = new PrintWriter(osw);
} catch (IOException e) {
log.error("", e);
}
tip:喜欢的小伙伴收藏和关注哟~