FreeMarker生成静态页面中文乱码解决办法
FreeMarker在生成静态页面的时候如果编码不一致则会产生乱码,特别是在处理中文的时候,如果不指定相同的编码,那么一定会产生中文乱码,所以在开发当中应该尽量保证编码一致,以下几个方面可以避免乱码:
1. ftl文件编码设置
Window->Preferences->Workspace->Text file encoding
配置 Text file encoding为 utf-8,再把相应ftl中文再改一次。
2. FreeMarkerConfigurer配置
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF/views"/> <property name="freemarkerSettings"> <props> <!-- 设置页面中文乱码问题 --> <prop key="default_encoding">UTF-8</prop><!--模板的编码格式 --> <prop key="locale">UTF-8</prop><!-- 本地化设置 --> <prop key="url_escaping_charset">UTF-8</prop> <!-- 其他配置 --> ...... </props> </property> <property name="templateLoaderPath"> <value>WEB-INF/FTL/</value> </property> </bean>3
3. FreeMarkerViewResolver配置
<bean id="freemarkerResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <!-- 设置页面中文乱码问题 --> <property name="contentType" value="text/html;charset=UTF-8"/> <!-- 其他配置 --> ...... </bean>
4. ftl文件编码设置
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> hello你好${name} </body> </html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> flt模板里面已经要加入这行,不然一定会产生中文乱码。
5. freemarker.properties设置
在classpath上放置一个文件freemarker.properties,在里面写上模版文件的编码方式
default_encoding=UTF-8 locale=zh_CN
注意:eclipse中除了xml文件、java文件外,默认的文件格式iso8859-1
通过以上5种方式一般可以解决各种使用FreeMarker产生中文乱码的情况。
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。