导出可以用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。