在Ajax中传递中文解决方案如下:
在js中:
//要传递的参数
var queryString = "msg=" + msg; //其中msg包含中文
//GET方式提交
doRequestByGet() {
createXMLHttpRequest();
var url = "handleAjaxServlet?" + queryString + "&timeStamp=" + new Date().getTime();
xmlHttp.onreadystatechange = handleCallBack;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
//POST方式提交
function doRequestByPost() {
createXMLHttpRequest();
var url = " handleAjaxServlet ?timeStamp=" + new Date().getTime();
xmlHttp.open("POST", url, true);
xmlHttp.onreadystatechange = handleCallBack ;
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.send(queryString);
}
在servlet中:
String 美术馆= new String(request.getParameter("msg").getBytes("ISO-8859-1"), "utf-8");
实际上,在客户端发送ajax请求时,ajax总是以utf-8进行编码,服务器端在获取数据时要转换为utf-8编码。
在js中:
//要传递的参数
var queryString = "msg=" + msg; //其中msg包含中文
//GET方式提交
doRequestByGet() {
createXMLHttpRequest();
var url = "handleAjaxServlet?" + queryString + "&timeStamp=" + new Date().getTime();
xmlHttp.onreadystatechange = handleCallBack;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
}
//POST方式提交
function doRequestByPost() {
createXMLHttpRequest();
var url = " handleAjaxServlet ?timeStamp=" + new Date().getTime();
xmlHttp.open("POST", url, true);
xmlHttp.onreadystatechange = handleCallBack ;
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.send(queryString);
}
在servlet中:
String 美术馆= new String(request.getParameter("msg").getBytes("ISO-8859-1"), "utf-8");
实际上,在客户端发送ajax请求时,ajax总是以utf-8进行编码,服务器端在获取数据时要转换为utf-8编码。