ftl保存成html中文是乱码,解决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());
總結
以上是生活随笔為你收集整理的ftl保存成html中文是乱码,解决freemarker生成静态页面时乱码问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 失了桥这个网名有什么寓意?
- 下一篇: 南昌石泉村在哪一个供电公司交电费?