乱码问题都是编码不统一造成的,使用AJAX交互时可以对要发送的数据进行编码,如下:
function verify(){
var url = "ajax_Server?name="+encodeURI($("#user_Name").val());
$.get(url,null,function(data){
$("#result").html(data);
});
}
使用encodeURI方法对要发送的中文数据进行重新编码,使得发送到服务器的数据的编码与服务器上servlet进行交互时不会发生编码错乱问题。服务器的servlet对接收的数据也要进行编码,使用new String(old.getBytes("iso8859-8"),("utf-8"))方法,对数据进行重新编码,避免乱码的出现。
另外一种方法:
使用两次encodeURI,服务器对接收的数据进行处理。
function verify(){
//做两次encodeURI,解决中文乱码问题
var url = "ajax_Server?name="+encodeURI(encodeURI($("#user_Name").val()));
url = convertURL(url);
$.get(url,null,function(data){
$("#result").html(data);
});
}
function convertURL(url){
//获取时间戳
var timestamp = (new Date()).valueOf();
if(url.indexOf("?") >= 0){
url = url+"&t"+timestamp;
} else{
url = url+"?+"+timestamp;
}
return url;
}
服务器处理:
String name = URLDecoder.decode(old,"utf-8");