jsp中request接收中文參數亂碼問題解決辦法

來源:互聯網
上載者:User

標籤:jsp   亂碼   中文亂碼   request   

    在利用表單提交資料時發現,獲得的中文參數會發生亂碼,解決方案如下:

<body><%String s=request.getParameter("uname");s = new String(s.getBytes("ISO-8859-1"),"utf-8");//解決亂碼問題%><%=s %></body>

s = new String(s.getBytes("ISO-8859-1"),"utf-8");此程式的作用是將接收到的的參數先轉化為位元組碼檔案,然後進行utf-8編碼。

防止中文亂碼的總結:

  

1、對於同一個應用,最好統一編碼,推薦為UTF-8,當然GBK也可以。     

2、正確設定JSP的pageEncoding="UTF-8" 

3、在所有的JSP/Servlet中設定contentType="text/html;charset=UTF-8"或response.setCharacterEncoding("UTF-8"),從而間接實現對瀏覽器編碼的設定。     

4、對於非表單提交的get或url請求,可以修改Tomcat的預設配置,推薦將useBodyEncodingForURI參數設定為true,也可以將URIEncoding參數設定為 UTF-8(有可能影響其他應用,所以不推薦)。或者用下面的方法,在接收資料時處理:

  request.getParameter("userID"),得到userID的值   

  request.getParameter("userID").trim()將這個值去掉兩邊的空格   

  request.getParameter("userID").trim().getBytes("ISO-8859-1"))將這個String用ISO-8859-1編碼成一個位元組數祖   

  new   String(request.getParameter("userID").trim().getBytes("ISO-8859-1"),"utf-8")將剛才的位元組數祖傳進string的建構函式按照"utf-8"編碼建立一個string對象。 

5.使用URLEncoder的方法

傳參前用: 

//使用指定的編碼機制將字串轉換為 application/x-www-form-urlencoded 格式

String username_encoder = URLEncoder.encode(username,"UTF-8");

接參數後顯示用:

//使用指定的編碼機制對 application/x-www-form-urlencoded 字串解碼

String username_decoder = URLDecoder.decode(request.getParameter("username"),"UTF-8");


jsp中request接收中文參數亂碼問題解決辦法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.