Java-Servlet生成的CSV:编码总是“未定义”

时间:2016-03-11 00:39:33

标签: java google-app-engine servlets encoding

我正在Java-Servlet中创建一个CSV文件。

我将所有内容都设置为UTF-8:

response.setContentType("text/csv;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=\"shippingInfosForDHLImport.csv\"");

如果我在浏览器中访问我的servlet并下载文件,特殊情况就会被破坏,如果我在sublime中打开文件并输入:“view.encoding()”,它会显示给我:

"u'Undefined'"

servlet正在谷歌应用引擎上运行,我正在将文件下载到Mac。

如果我在本地运行servlet。一切正常,sublime中的编码显示为UTF-8(即使我删除了代码中的UTF-8设置)。

如果代码在App引擎上运行,如何正确获取文件的编码?我可以设置另一个配置参数吗?

1 个答案:

答案 0 :(得分:0)

我通过将CSV内容写入PrintWriter解决了问题:

response.getWriter().write(result);

而不是OutputStream:

response.getOutputStream().write(result);