采用
try (Writer writer = new OutputStreamWriter(os, “UTF-8”))
UTF-8 内容转换
public static void setResponseHeader(HttpServletResponse response, String fileName) {
try {
// fileName = "中文.xls";
try {
fileName = new String(fileName.getBytes(),"ISO8859-1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
response.setContentType("application/octet-stream;charset=UTF-8");
//response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachment;filename="+ fileName);//
response.addHeader("Pargam", "no-cache");
response.addHeader("Cache-Control", "no-cache");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
public void xml2XmlOutFromResources(HttpServletResponse response, Map<String, Object> dataMap, String templetFile, String fileName) throws IOException, TemplateException {
//设置响应头
ExportExcel.setResponseHeader(response, fileName);
Configuration configuration = new Configuration(Configuration.VERSION_2_3_28);
configuration.setDefaultEncoding("UTF-8");
configuration.setClassLoaderForTemplateLoading(this.getClass().getClassLoader(), "");
Template template = null;
try {
template = configuration.getTemplate("templates/exportTemplate.xml","UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
//模板和数据模型合并生成文件
OutputStream os = null;
try {
os = response.getOutputStream();
try (Writer writer = new OutputStreamWriter(os, "UTF-8")) {
template.process(dataMap, writer);
}
} catch (Exception ex) {
} finally {
try {
if (os != null) {
os.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » freemarker 读取template.xml ,通过response 输出文件,解决中文乱码问题
发表评论 取消回复