2004 年終 JSP 中文問題解決方案整理

阅读更多
相信大家在用 JSP 時或多或少都遇到中文的相關問題. 在本論壇用全文檢索可以查到一堆相關資料, 這篇文章算是有點多餘的, 您就當作是篇整理吧.

廢話不多說, 底下寫出目前經過 koji 及 weaker 指導後我所採用的還算不錯的解決方案:

環境:
Tomcat 5.0
MySQL (v3.x or v4.0)

JSP pages 裡面要有底下這些:

<%@ page contentType="text/html;charset=Big5" pageEncoding="Big5" %>


<meta HTTP-EQUIV=Content-Type content="text/html;charset=Big5">


讀取使用者輸入值的時候要先:

request.setCharacterEncoding("Big5");

上面這行建議放在一個 Filter 中.

在作資料庫的連接設定時:
對於 MySQL v3.x and v4.0:

url = "jdbc:mysql://localhost:3306/bbs?useUnicode=true&characterEncoding=big5"


server.xml 的設定檔中可以考慮設:

<Connector ...... URIEncoding="Big5" />

不過好像不設也沒關係的樣子.

註 1: 此方案亦適用於有採用 struts 及 hibernate 的架構.

註 2: 上述的 big5 改成 ms950 (for windows) 或 utf-8 亦可, 不過 utf-8 的 jsp 頁面必須要用 utf-8 編碼儲存會有點麻煩.

註 3: 如果您是自己寫 JDBC 的程式的話, 記得不要用 Statement, 要改用 PreparedStatement. 否則遇到 "許功蓋" 等特例的字時程式執行會爆掉, 而且使用 PreparedStatement 也可減少駭客的 SQL Injection 的攻擊.

你可能感兴趣的:(JSP,MySQL,Hibernate,JDBC,Tomcat)