tomcat+mysql使用utf-8

  • 来源: 互联网 作者: rocket   2008-03-17/11:56
  • 使用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...當然是亂碼囉
    所以記得這件很重要的事情


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多