欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-12 16:31:17
...
相信大家在用 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 的攻擊.