导出可以用Excel打开的希伯来字符的CSV
我知道有很多类似的问题,但我仍然无法find解决scheme,
我的代码:
resp.setContentType("text/csv; charset=UTF-8"); resp.addHeader("Content-Disposition", "attachment; filename=file.csv"); resp.addHeader("Pragma", "no-cache"); resp.addHeader("Expires", "0"); resp.addHeader("Content-Encoding", "UTF-8"); resp.getWriter().write(sb.toString());
结果在excell中被打开为gibrish文本而不是希伯来文。
我应该如何改变这个文本,所以结果CSV可以在Excel中打开(不需要导入excell)?
即我应该使用什么字符集,以及生成它的正确代码是什么?
做
sb.insert(0, '\uFEFF'); resp.getWriter().write(sb.toString());
这将插入一个BOM字符,一个零宽度空间,将文本标记为Unicode。 这是多余的,甚至是丑陋的。 但Excel和记事本这种方式不会错误的平台编码的编码。
警告:
现在单元格A1不能包含数字。
不幸的是,您的响应中的编码标题将不会与附件相关联; 他们只是在阅读响应主体时才使用。
Excel在处理UTF-8编码的CSV文件方面很糟糕。 这是过去的一个很好的答案,它说服了它的行为。 另一种select是在Windows-1252中重新编码你的CSV。