post、url發送數據亂碼問題

從頁面傳送數據到服務端,出現亂碼的情況及我的解決方法:

1.在post中發送的數據是以UTF-8編碼的,解決方法是:
  http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") ;
 request.setCharacterEncoding("UTF-8")

2.頁面編碼是utf_8,採用Prototype.js的ajax發送數據到服務端,出現亂碼

var url="action.do?method=query";

 var par="name="+name;

  new Ajax.Request(url,   
            {   
               method: 'post',
               parameters:par,             
               onComplete: function(originalRequest){               
          var data = eval('(' + originalRequest.responseText + ')'); //轉化爲json
           });

方法是  request.setCharacterEncoding("UTF-8")

2.URL亂碼解決:

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

      name= new String(name.getBytes("ISO-8859-1"), "UTF-8");//解決url亂碼問題

以下是從網上找的資料頁面是utf_8時js的url亂碼解決 :

1.客戶端:
      var url= "<%=request.getContextPath()%>/action.do?method=query&name="+name;
url=encodeURI(url);
     windows.location=url;
服務器:
String linename = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
2.客戶端:
url=encodeURI(encodeURI(url)); //用了2次encodeURI
服務器:
String linename = request.getParameter(name);
//java  : 字符解碼
linename = java.net.URLDecoder.decode(linename , "UTF-8");
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/alen1985/archive/2009/06/23/4289469.aspx
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章