最近做一个门户网站,页面要求静态化,就用freemarker的模板,输出静态页面。freemarker的配置什么的全部设置成UTF-8,本以为输出html正常了,结果查看静态页面里面中文全乱码,调试N久,最后换成gbk,乱码没有,好了。但是整体项目是UTF-8编码的,所以gbk基本排除。最后把生成的html用txt打开,正常无乱码。看来问题不是出在设置编码这块了,于是做了如下设置:
freemarker模板头部加上<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,运行,乱码结束。
还有种方法:response.setContentType("text/html; charset=" + template.getEncoding());可以看出,页面的编码也必须要设置。