天天看點

freemarker 中文亂碼問題解決辦法

解決辦法一:通過修改配置檔案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
      

還有1個辦法 在contentType裡設定value為text/html;charset=UTF-8"

<!-- FreeMarker視圖解析器 -->
<bean id="viewResolver"
    class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
    <property name="viewClass"
        value="org.springframework.web.servlet.view.freemarker.FreeMarkerView" />
    <property name="contentType" value="text/html;charset=UTF-8" />
    <property name="cache" value="false" />
    <property name="viewNames" value="*.ftl" />
    <property name="suffix" value="" />
    <property name="order" value="2" />
</bean>
      

解決辦法二:通過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就會出現亂碼,反之也一樣。

繼續閱讀