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 的攻擊.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值