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 ......
最近,写了个ajax程序。实现了定位地图,因为了ajax的动态请求,所以,地图是实时扫描的,但是,问题困惑了半个月,今天在和学长聊天的时候,终于想清楚了。
ajax在本程序中的任务就是对八个读卡器点进行动态请求数据库数据,然后,根据数据库索引数扫描地图上该点的 ......
应项目需求,测试了下自动发送邮件的功能,以实现,下面分别介绍前台的Ajax和后台c#
前台:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SendEmail.aspx.cs" Inherits="SendEmail" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- ......
其实ajax的东西不是很熟悉,而且对于javascript这样零碎的语言实在是很抗拒。于是过去一直都逃避它,迫于项目的压力,不得已惟有硬碰硬了。为了快速上手,之前做了几个小实验,代码实在太多了。幸好struts2提供了一些ajax的简易实现。
跟网上所有的教程一样,先从最简单的开始吧~
在头结点加上<s:head theme="ajax"/&g ......
用的标签有ScriptManager,UpdatePanel,UpdateProgress ,主要的是UpdatePanel中的Triggers属性一定要对。
前台代码
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdateP ......