AJAX中文乱码的两类问题解决方法
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编码就行了.
相关文档:
使用DWR开发Ajax应用:
1、导入DWR的Jar包:dwr.jar;
2、在/WEB-INF下添加dwr.xml配置文件;
3、在web.xml文件中配置dwr的服务器端组件(DwrServlet):
<!-- 添加DWR的Servlet -->
<servlet>
<servlet-name>dwr</servlet-name>
<servlet-class>org.direc ......
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>xmlhttprequest ajax demo</title>
<mce:script type ="text/javascript" language ="javascript" ><!--
var req; //定义变量,用来创建xmlhttprequest对象
function creatReq() // 创建xmlhtt ......
var x,y;
//这是一个通过AJAX取得提示信息的方法
function over(noteContent){
//记录事件发生时的鼠标位置
x = event.clientX;
y = event.clientY;
//显示工具提示
document.getElementById(" ......
最近,写了个ajax程序。实现了定位地图,因为了ajax的动态请求,所以,地图是实时扫描的,但是,问题困惑了半个月,今天在和学长聊天的时候,终于想清楚了。
ajax在本程序中的任务就是对八个读卡器点进行动态请求数据库数据,然后,根据数据库索引数扫描地图上该点的 ......
$.ajax({
type: "POST", //访问WebService使用Post方式请求
......