熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

如何解決JSP頁面顯示亂碼問題[2]

2013-11-15 12:19:14  來源: JSP教程 

    下面是處理頁面(processjsp)代碼 <%@ page contentType=text/html; charset=gb%>

    <html>
    <head>
    <title>JSP的中文處理</title>
    <meta httpequiv=ContentType content=text/html; charset=gb>
    </head>
    <body>
    <%=requestgetParameter(name)%>
    </body>
    </html>

    如果submitjsp提交英文字符能正確顯示如果提交中文時就會出現亂碼原因浏覽器默認使用UTF編碼方式來發送請求而UTF和GB編碼方式表示字符時不一樣這樣就出現了不能識別字符解決辦法通過requestseCharacterEncoding(gb)對請求進行統一編碼就實現了中文的正常顯示修改後的processjsp代碼如下

    <%@ page contentType=text/html; charset=gb%>
    <%
    requestseCharacterEncoding(gb);
    %>
    <html>
    <head>
    <title>JSP的中文處理</title>
    <meta httpequiv=ContentType content=text/html; charset=gb>
    </head>
    <body>
    <%=requestgetParameter(name)%>
    </body>
    </html>

    三數據庫連接出現亂碼

    只要涉及中文的地方全部是亂碼解決辦法在數據庫的數據庫URL中加上useUnicode=true&characterEncoding=GBK就OK了

    四數據庫的顯示亂碼

    在mysqlvarchar類型text類型就會出現中文亂碼對於varchar類型把它設為binary屬性就可以解決中文問題對於text類型就要用一個編碼轉換類來處理實現如下

    public String isogb(String qs)
    {
    try{
    if (qs == null) return NULL;
    else
    {
    return new String(qsgetBytes(isogb);
    }
    }
    catch(Exception e){
    Systemerrprintln(isogb error+egetMessage());
    }
    return NULL;
    }
    public String gbiso(String qs)
    {
    try
    {
    if (qs == null) return NULL;
    else {
    return new String(qsgetBytes(gbiso); }
    }
    catch(Exception e){ Systemerrprintln(gbiso error+egetMessage());}
    return NULL;
    }

    字符存入數據庫時用 gbiso()函數將字符從數據庫取出時再用 isogb()函數

[]  []  


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20717.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.