从页面传送数据到服务端,出现乱码的情况及我的解决方法:
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);
url=encodeURI(url);
windows.location=url;
服务器:
String linename = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
服务器:
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");
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