使用希伯来字符导出CSV,可以通过Excel打开

时间:2014-12-08 16:14:48

标签: java excel csv

我知道有很多类似的问题,但我仍然找不到解决方案,

我的代码:

    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文本而不是希伯来语打开。

如何更改此文本以便可以在Excell中打开结果CSV(不将其导入到excell中)?

即。我应该使用什么字符集,以及生成它的正确代码是什么?

2 个答案:

答案 0 :(得分:3)

待办事项

sb.insert(0, '\uFEFF');
resp.getWriter().write(sb.toString());

这会插入BOM字符,零宽度空间,以将文本标记为Unicode。这是多余的,甚至是丑陋的。但就这样,Excel&记事本不会将编码误认为是平台编码。

警告:

现在,单元格A1不能包含数字。

答案 1 :(得分:2)

不幸的是,您的回复中的编码标题不会与附件相关联;它们仅供阅读回复机构时使用。

Excel处理UTF-8编码的CSV文件非常糟糕。 Here's a good answer from the past说服它表现出来;另一种选择是在Windows-1252中重新编码CSV。