解决freemarker生成静态页面时乱码问题
在使用freemarker技术生成静态页面时,虽然在各方面统一使用utf8编码,但是生成的页面还是乱码.查阅相关资料,对模板,代码等都设置了一下,最终解决乱码问题.
- 首先,模板文件确定是UFT-8编码.
①在模板文件头加
②确定ftl文件的编码一定是UTF-8编码
- 接着,必须用UTF-8的编码去读取模板目录
// 加载模板目录
Configuration cg = new Configuration();
//以”UTF-8”的形式去加载模板目录
cg.setDefaultEncoding(“UTF-8””);
- 再用UTF-8编码读取模板文件
// 加载模板
Template t1 = cg.getTemplate(“HTML2.ftl”);
//以”UTF-8”的形式读取模板
t1.setEncoding(“UTF-8”);
- 输出文件的方式用UTF-8去输出
t1.process(dataModel, out);
//合并输出
eg:t1.process(parameterMap, new OutputStreamWriter(new FileOutputStream(htmlFile), “utf-8”));
- 最后存的时候设置为UTF-8
ServletActionContext.getResponse().setContentType(“text/html;charset=utf-8”);
FileUtils.copyFile(htmlFile, ServletActionContext.getResponse().getOutputStream());
还没有评论,来说两句吧...