【问题标题】:export CSV with Hebrew char that can be opened by Excel使用 Excel 可以打开的希伯来字符导出 CSV
【发布时间】:2014-12-08 16:14:47
【问题描述】:

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

我的代码:

    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());

结果在 Excel 中以乱码文本而不是希伯来文形式打开。

我应该如何更改此文本,以便可以在 Excell 中打开结果 CSV(无需将其导入 Excel)?

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

【问题讨论】:

    标签: java excel csv


    【解决方案1】:

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

    这会插入一个 BOM 字符(一个零宽度空格)来将文本标记为 Unicode。它是多余的,甚至是丑陋的。但是这样 Excel & Notepad 就不会把编码误认为是平台编码了。

    警告:

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

    【讨论】:

      【解决方案2】:

      很遗憾,您响应中的编码标头不会与附件相关联;它们仅在阅读响应正文时使用。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-08
        • 2013-09-20
        • 2012-05-30
        • 2012-03-10
        相关资源
        最近更新 更多