如果你有使用到 Spring Framework 的話,你可以試試使用 Spring Framework 內建的 Filter 去將頁面所有字串轉換成 UTF-8 編碼,以解決亂碼問題。我在 Google App Engine 上開發的應用程式也有亂碼問題,將頁面所有字串轉換成 UTF-8 編碼後便解決了所有亂碼問題。
首先在 web.xml 加上 Filter:
<filter>
<filter-name>
encodingFilter
</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>
encoding
</param-name>
<param-value>
UTF-8
</param-value>
</init-param>
<init-param>
<param-name>
forceEncoding
</param-name>
<param-value>
true
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>
encodingFilter
</filter-name>
<url-pattern>
/*
</url-pattern>
</filter-mapping>
有一點要記的是 CharacterEncodingFilter 一定要是第一個 Filter。之後要加的 Filter 要加在下面。
所有 JSP 頁面亦要以 UTF-8 編碼,在 JSP 頁面加上以下程式碼:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
在 HTML 的 head 亦要加上以下程式碼提示瀏覽器此頁面用 UTF-8 編碼。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
這樣就可以解決亂碼問題了。
相關書籍: