程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> tomcat+mysql使用utf-8

tomcat+mysql使用utf-8

編輯:關於JSP

使用UTF-8其實對於jsp(SUN企業級應用的首選)來說
對於在網頁常常會需要輸入或輸出多國語文上
算是一個比較方便的編碼
jsp(SUN企業級應用的首選)的轉碼設定其實也不難..只要記得加上去即可
不然jsp(SUN企業級應用的首選)內定的編碼可不是UTF-8喔

不過可惜的是MySQL(和PHP搭配之最佳組合)至今尚沒有完整支援UTF-8
但是可別這樣就灰心囉
因為我門可以透過MySQL(和PHP搭配之最佳組合)提供的Connection/J的JDBC介面來存取UTF-8編碼的資料
利用JDBC自動轉碼對我們撰寫網頁的人是很方便的

好拉!!不多說..馬上進入主題
我以下分幾個步驟來說明.很少.但都是需要設定的地方而已
只是提出來給大家注意

1.透過JDBC連接MySQL(和PHP搭配之最佳組合)
12
   Class.forName("com.MySQL(和PHP搭配之最佳組合).jdbc.Driver").newInstance();  Connection conn = DriverManager.getConnection("jdbc:MySQL(和PHP搭配之最佳組合)://[hostname]/[database]?user=&password=&useUnicode=true&characterEncoding=utf-8");
 
紅字的地方一定要加入
因為那是呼叫(說呼叫應該可以吧)JDBC利用UTF-8的編碼來存取資料
簡單的說
就是jsp(SUN企業級應用的首選)跟JDBC說....我只要UTF-8.其他免談....
這樣說了解吧^^"

PS:
其實這部分我是建議最少用jsp(SUN企業級應用的首選) include的方式來作.比較不會出錯
只要需要的時候include近來即可..有問題只要找尋一個檔案
不要像我每一個都得去檢查有沒有錯誤...
之前的問題就是有一個檔案的JDBC編碼設定為Big5
害我弄了好多天才找到.....
更進階的朋友可是試著用JavaBean來控制應該會更簡單

2.
網頁的部分一定要設定為如下的程式碼
1
   <%@ page contentType="text/html;charset=utf-8" %>
 

是跟jsp(SUN企業級應用的首選)跟浏覽器(如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(SUN企業級應用的首選)內定的編碼
你看到的都是亂碼了
1
   <% request.setCharacterEncoding("utf-8"); %>
 


4.
相反的.如果你傳遞資料出去(表單似乎也包含在內.這我不太清楚得請教各位大大)
就必須設定下面的程式碼
1
   <% response.setContentType("text/html;charset=utf-8"); %>
 

告訴tomcat(一個很好用的JSP運行平台)需要使用UTF-8來處理資料的傳遞

5.
這也是很重要的一點喔
記得在編輯你的jsp(SUN企業級應用的首選)檔案後
在儲存的時候記得儲存成為UTF-8的格式
因為我適用Dreamweaver MX
MX會自動依據ContentType來幫你儲存檔案所以不用擔心
但是你若是用NotePad(記事本)寫jsp(SUN企業級應用的首選)的話
那就要在檔案格式那邊選UTF-8的格式來儲存囉
否則網頁顯示出來的一樣是亂碼
ex:你存成Big5格式來存檔.但是網頁編碼是設定為UTF-8
那jsp(SUN企業級應用的首選)跟浏覽器連絡的時候自然是以UTF-8來處理
所以Big5的格式會變轉成UTF-8...當然是亂碼囉
所以記得這件很重要的事情

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved