對JSP頁面?zhèn)髦抵形膩y碼的簡單解決方法

字號:


    源代碼,a.jsp往b.jsp傳值:
    a.jsp頁面內(nèi)容:
    name:
    b.jsp頁面內(nèi)容:
    現(xiàn)象:中文亂碼,比如“??????”
    解決方法如下:
    方法一:
    1. 在b.jsp中把pageEncoding="GB2312"改為pageEncoding="ISO8859-1"
    雖然這樣b.jsp頁面顯示的內(nèi)容還是亂碼,但是不是那種“??????”的亂碼,而是一些特殊字符
    2. 然后在瀏覽器中查看菜單中修改成GB2312的編碼,這時亂碼就顯示中文了。
    3. 但是這種方法是不可行的。
    方法二:
    1. 在b.jsp中把String name=request.getParameter("name");修改為
    String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");
    2. 這時再在頁面上顯示,則就是中文了。
    方法三:
    1. 有人說修改get/post的傳值方式,但是這是有前提的,如果只是把get方式修改成post方式,頁面結(jié)果還是亂碼!
    2. 前提你必須配置了過濾器,若果你只是配置了過濾器,則傳值方式必須是:post方式才不是亂碼,如果是get方式照樣是亂碼!
    3. 過濾器的配置,我想大家都能有,我就不說了
    方法四:
    1. 有人說配置tomcat的配置文件server.xml里這句:
    port="8080" maxHttpHeaderSize="8192"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" redirectPort="8443" acceptCount="100"
    connectionTimeout="20000" disableUploadTimeout="true" />
    加上這句:URIEncoding="GB2312"
    2. 雖然可以但是有前提的,若果你過濾器沒有配置,則只是配置了server.xml文件,這樣只有在表單是get傳值時候才可以!當是post方式時,照樣是亂碼!
    *這時我們就可以看出在tomcat5中的post與get傳值方式是不一樣的*
    *有人要問有沒有一種方法讓傳值使用get方式或post方式都好用呢,下面就是我推薦的方法五*
    方法五:
    1. 其實很簡單,就是同時實現(xiàn)方法三又實現(xiàn)方法四!
    2. 就是先配置過濾器,又配置server.xml文件,都設(shè)置成GB2312的編碼
    3. 這樣無論是post還是get方式的表單傳值,中文都不會是亂碼!