jsp頁面間傳值亂碼解決

來源:互聯網
上載者:User
產生亂碼的原因:java在網路上進行傳輸的時候,用的是iso-8859-1的編碼形式進行傳輸。所以,在編碼和解碼(得到傳遞值)的時候,要對應起來。。

 

解決方案如下:

 

方法一:重新轉碼new String(u.getBytes("iso-8859-1"),"gb2312");

例 :

 

String userName = requset.getParameter("userName");

userName = new String(userName.getBytes("iso-8859-1"),"gb2312");

 

但每次都這樣轉,還是太麻煩了,因此可以寫一個工具類,提供這個將亂碼轉成gb2312.

public class Tools{

//提供一個方法,將亂碼轉化成gb2312

public static String getNewString(String input){

String result = "";

try{

result = new String(input.getBytes("iso-8859-1"),"gb2312");

}catch(Exception e){

e.printStackTrace();

}

return result;

}

 

 

在用的時候,

String userName = request.getParameter("userName");

userName = Tools.getNewString(u);

 

註:在用這種方法時,後面的不一定就是gb2312,可以是gbk,utf-8.具體是哪一種,要取決於向該控制器傳值的頁面是哪個編碼。

 

方法二:.通過配置server.xml檔案[不太穩定]

1.         有人說配置tomcat的設定檔server.xml裡這句:
             <Connector URIEncoding="GB2312" 
                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.         就是先配置過濾器,又配置server.xml檔案,都設定成GB2312的編碼
2.         這樣無論是post還是get方式的表單傳值,中文都不會是亂碼!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.