如何在Java Web 應用程式中確保UTF-8 編碼
要在Java Web 應用程式中啟用UTF-8 編碼,請請依照下列步驟操作:
1。配置 Tomcat 的 server.xml
新增以下行以啟用 URL(GET 請求)參數的 UTF-8編碼:
<Connector port="8080" ... URIEncoding="UTF-8" ... />
2.實作字元集過濾器
定義一個過濾器以強制Web應用程式以UTF-8編碼處理所有請求和回應:
import javax.servlet.*; public class CharsetFilter implements Filter { private String encoding = "UTF-8"; @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain next) throws ServletException, IOException { request.setCharacterEncoding(encoding); response.setContentType("text/html; charset=UTF-8"); response.setCharacterEncoding("UTF-8"); next.doFilter(request, response); } }
3。將過濾器添加到web.xml
在部署描述符中註冊過濾器:
<filter> <filter-name>CharsetFilter</filter-name> <filter-class>fi.foo.filters.CharsetFilter</filter-class> </filter> <filter-mapping> <filter-name>CharsetFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
4.設定JSP頁面編碼
在web .xml中指定頁面編碼:
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <page-encoding>UTF-8</page-encoding> </jsp-property-group> </jsp-config>
5.使用HTML-Meta 標籤
表示HTML 頁面使用的編碼:
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
6.設定JDBC 連線
6.設定JDBC 連線
<Resource ... url="jdbc:mysql://localhost:3306/ID_development?useEncoding=true&amp;characterEncoding=UTF-8" ... />
指定資料庫連線的UTF-8編碼:
7.使用UTF-8 排序規則創建表
CREATE TABLE `Users` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(30) collate utf8_swedish_ci default NULL PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci ROW_FORMAT=DYNAMIC;
確保所有數據庫表都具有UTF-8 排序規則:
8。檢查MySQL 伺服器設定
[client] default-character-set=utf8 [mysql] default-character-set=utf8
驗證伺服器是否配置為使用UTF-8 作為預設字元集:
注意:
注意: 注意: 注意: 注意: 注意: 注意: 注意:雖然像“ж”這樣的西里爾字符可以透過UTF-8 編碼的GET請求來處理,但像“ä”這樣的字元可能會被處理。以 Latin1 (ISO-8859-1) 編碼,導致不一致。以上是如何保證整個 Java Web 應用程式的 UTF-8 編碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!