|
源代码网推荐
使用UTF-8其實對於JSP來說 對於在網頁常常會需要輸入或輸出多國語文上 算是一個比較方便的編碼 JSP的轉碼設定其實也不難..只要記得加上去即可 不然JSP內定的編碼可不是UTF-8喔
不過可惜的是MySQL至今尚沒有完整支援UTF-8 但是可別這樣就灰心囉 因為我門可以透過MySQL提供的Connection/J的JDBC介面來存取UTF-8編碼的資料 利用JDBC自動轉碼對我們撰寫網頁的人是很方便的
好拉!!不多說..馬上進入主題 我以下分幾個步驟來說明.很少.但都是需要設定的地方而已 只是提出來給大家注意
1.透過JDBC連接MySQL 12 Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection conn = DriverManager.getConnection("jdbc:mysql://[hostname]/[database]?user=&password=&useUnicode=true&characterEncoding=utf-8"); 紅字的地方一定要加入 因為那是呼叫(說呼叫應該可以吧)JDBC利用UTF-8的編碼來存取資料 簡單的說 就是JSP跟JDBC說....我只要UTF-8.其他免談.... 這樣說了解吧^^"
PS: 其實這部分我是建議最少用JSP include的方式來作.比較不會出錯 只要需要的時候include近來即可..有問題只要找尋一個檔案 不要像我每一個都得去檢查有沒有錯誤... 之前的問題就是有一個檔案的JDBC編碼設定為Big5 害我弄了好多天才找到..... 更進階的朋友可是試著用JavaBean來控制應該會更簡單
2. 網頁的部分一定要設定為如下的程式碼 1 <%@ page contentType="text/html;charset=utf-8" %>
是跟JSP跟瀏覽器(如IE)說我的編碼要用UTF-8來顯示
而下面這個pageEncoding可加可不加..我是習慣都加啦 不知道會不會有問題 請參考javamon65大大的精闢文章會更了解http://www.javaworld.com.tw/jute/post/view?bid=6&id=27113&sty=2 1 <%@ page pageEncoding="utf-8" %>
3. 當你用Form傳遞資料到另一個網頁後 那接收資料的編碼模式也得設定 不然所接收資料的編碼可是使用JSP內定的編碼 你看到的都是亂碼了 1 <% request.setCharacterEncoding("utf-8"); %>
4. 相反的.如果你傳遞資料出去(表單似乎也包含在內.這我不太清楚得請教各位大大) 就必須設定下面的程式碼 1 <% response.setContentType("text/html;charset=utf-8"); %>
告訴Tomcat需要使用UTF-8來處理資料的傳遞
5. 這也是很重要的一點喔 記得在編輯你的JSP檔案後 在儲存的時候記得儲存成為UTF-8的格式 因為我適用Dreamweaver MX MX會自動依據ContentType來幫你儲存檔案所以不用擔心 但是你若是用NotePad(記事本)寫JSP的話 那就要在檔案格式那邊選UTF-8的格式來儲存囉 否則網頁顯示出來的一樣是亂碼 ex:你存成Big5格式來存檔.但是網頁編碼是設定為UTF-8 那JSP跟瀏覽器連絡的時候自然是以UTF-8來處理 所以Big5的格式會變轉成UTF-8...當然是亂碼囉 所以記得這件很重要的事情
源代码网供稿. |