freemarker生成靜態頁面中文亂碼(固定中文和動態生成的中文都亂碼
- 現象: freemarker生成靜態頁面中文亂碼(固定中文和動態生成的中文都亂碼)
- 檢查:
1,FreeMarkerConfigurer已經初始化, 設置屬性UTF-8
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/ftl/" /> <property name="defaultEncoding" value="UTF-8" />
</bean>
2,模版文件ftl文件已經設置頭信息, 編碼格式為UTF-8
<head>
<meta charset="utf-8"/>
3,使用記事本查看網頁不亂碼;
4,使用IE瀏覽器切換成GB2312編碼, 顯示正常
- 原因: 由於前期使用maven控制台中文亂碼, 在idea中設置了maven的命令-Dfile.encoding=GB2312
- 解決方案1: 刪掉idea中maven的設置-Dfile.encoding=GB2312
- 解決方案2: 創建流對象時設置字符集:
Write out = new OutputStreamWriter(new FileOutputStream(new File(filePath)),"UTF-8")