freemarker 中文乱码

阿超 发表于 2009-08-29 20:19 | 来源: | 阅读 439 次

freemarker 中文乱码问题解决办法

freemarker的Configurartion中有默认的编码为ISO-8859-1所以读取有中文的模板时就会变乱码。

解决办法一:通过修改配置文件freemarker.properties,修改默认编码:

locale=zh_CN
default_encoding=gbk
number_format=#
date_format=yyyy-MM-dd
time_format=HH:mm:Ss
datetime_format=yyyy-MM-dd HH:mm:Ss

解决办法二:通过spring或其他第三方工具配置:

<bean id="freemakerCongfig"

    class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">

       <property name="templateLoaderPath">

           <value>/WEB-INF/web/</value>

       </property>

       <property name="freemarkerSettings">

       <props>

       <prop key="defaultEncoding">gbk</prop>

       </props>

       </property>

    </bean>

注:org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer在spring-webmvc.jar 包里面,项目要导入这个jar包才可以,或者会找不到类。

另外,页面编码和charset要跟上面配置的一致才可以,<meta http-equiv="Content-type" content="text/html; charset=gbk">

注意:还有一种常见的导致乱码问题:编辑器或文件保存的编码和页面设置的编码不一致会导致乱码,例如文件的编码(用记事本打开,另存为可以看到文件的编码)为UTF-8而页面的charset=gbk就会出现乱码,反之也一样。

喜欢Java豆技术站点的文章,那就通过 RSS Feed 功能订阅阅读吧!

我要评论

*

* 绝不会泄露



返回首页 | 关于我们 | 联系我们 | 广告合作 | 网站地图 | 友情链接 | 版权声明 | 模板设计