数据来自Flex的utf格式,但是当我们导出到csv文件时,它已损坏。如果我们在notepad ++中打开相同的csv文件,则editplus会显示正确的字符。 - 有日本和韩国炭。
for是我们正在使用的代码段。请注意,出口时我们可以处理不同的lang。 我们在java中编写了演示应用程序,它是工作文件。
我们已经把UTF8 + BOM,文件能够在csv中正常打开。 (这是来自Java代码)但是如果我们尝试从jsp页面添加相同的内容,它就无法正常工作。
<%
MxHtmlUtil.jspInitScript(request, response);
response.setContentType("application/csv; charset=UTF-8");
response.setHeader("content-disposition", "attachment; filename=multi-cms-search.csv");
if (request.getParameter("content") != null)
out.println(request.getParameter("content"));
%>
添加bom如下但不在jsp页面中工作,它在java代码中工作正常。
out.print("\ufeff");
out.println(request.getParameter("content"));
答案 0 :(得分:0)
JSP是一种视图技术,旨在生成和发送HTML输出,而不是其他文件格式。 <% %>
之外的所有空格和换行符都也发送到输出。它可能已经腐蚀了这一个和另一个。
从JSP中删除所有空格,或者更好地将所有Java代码放在普通的Java类中。为此,Servlet非常合适。
请注意,您还应该致电
response.setCharacterEncoding("UTF-8");
在将任何字节写入响应主体之前。它指示作者使用什么字符集将写入的字符转换为响应体中的字节。