1)发送路径中的参数有中文,在服务器端接收参数值是乱码
解决方法:
PHP:
服务器端:iconv("UTF-8","gb2312",$_POST[变量名]);
JSP:
客户端:
利用javascript的提供的escape()或encodeURI()方法, 例
var url="a.jsp?name=小李";
url=encodeURI(url);
url=encodeURI(url); //两次,很关键[具体为什么,我也不清楚]
/********************************************/
也有人写成var url="a.jsp?name=escape("小李")";
功能和encodeURI方法类似。
/********************************************/
xmlHTTP.setrequestheader("contentType","text/html;charset=uft-8")//指定发送数据的编码格式
服务器端:java.net.URLDecoder.decode(request.getParameter(变量名), "UTF-8");
2)返回来的responseText或responseXML的值中含有中文是乱码
原因:AJAX在接收responseText或responseXML的值的时候是按照UTF-8的格式来解码的,如果服务器段发送的数据不是UTF-8的格式,那么接收responseText或responseXML的值有可能为乱码。
解决方法:在服务器端指明送出数据的编码流
PHP:header('Content-Type:text/html;charset=GB2312');
ASP:Response.Charset("GB2312")
JSP:response.setHeader("Charset","GB2312");
如果上述方法仍然解决不了乱码问题,那你尝试一下把文件用UTF-8编码格式保存.
总之:前后台数据交互都采用utf-8编码就行了.