一句话解决AJAX中文乱码问题[推荐]

下面是我的程序

HTML : 

复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>无标题页</title>

<script type="text/javascript" language="javascript">

var xmlhttp;

function createXMLHttprequest()

{

if(window.ActiveXObject)

{

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

else if(window.XMLHttpRequest)

{

xmlhttp=new XMLHttpRequest();

}

}

function inData()

{

var txtval=document.getElementById("txt").value;

createXMLHttprequest();

xmlhttp.open("GET","request.ashx?val="+txtval,true);

xmlhttp.onreadystatechange=getData;

xmlhttp.send(null);

}

function getData()

{

if(xmlhttp.readyState==4)

{

if(xmlhttp.status==200)

{

document.getElementById("showDT").innerHTML=xmlhttp.responseText;

}

}

}

</script>

</head>

<body>

<form id="form1" action="">

<div>请输入姓名:

<input type="text" id="txt" />

<input type="button" value="提交" id="asdf" onclick="inData()" />

<span id="showDT" ></span>

</div>

</form>

</body>

</html>

request.ashx :

Code 

复制代码 代码如下:

<%@ WebHandler Language="C#" Class="request" %>

using System;

using System.Web;

public class request : IHttpHandler {

public void ProcessRequest (HttpContext context) {

context.Response.ContentType = "text/plain";

string tab ="来自服务器的信息:您好 "+context.Request.QueryString["val"].ToString()+" --by time:"+DateTime.Now.ToLongTimeString();

context.Response.Write(tab);

}

public bool IsReusable {

get {

return false;

}

}

}

baidu搜了一大堆 大致意思是 AJAX提交数据时,使用的是UTF-8的编码 并且不可以设置为其他格式

如何解决呢 最后发现一个JS的函数escape与unescape 用escape()对将要提交的汉字进行编码,会出现大致%10%20的字符,类似与.NET中Server.UrlEncode()与Server.UrlDecode();

将JS获得的表单值进行重新编码

Code

复制代码 代码如下:

var txtval=escape(document.getElementById("txt").value);

OK, 问题解决!

其他可能还有别的办法至今没遇到 希望这个办法能帮到遇到这种困境的朋友

时间: 2024-10-04 20:12:50

一句话解决AJAX中文乱码问题[推荐]的相关文章

一句话解决AJAX中文乱码问题[推荐]_AJAX相关

下面是我的程序 HTML :  复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <tit

escape解决AJAX中文乱码的简单方法

在使用AJAX开发网站时,经常有朋友遇到乱码的问题,而且一下子难以找到解决方法.其实解决AJAX中文乱码问题很简单. 1.服务端程序: <% liststr="AJAX中文乱码的简单解决方法" sponse.write escape(liststr) '用escape编码 %> 2.客户端JAVASCRIPT程序 function toserver(url) { var req = new XMLHttpRequest(); if (req) { req.onreadyst

利用js escape函数解决ajax中文乱码问题

利用js escape函数解决中文乱码问题 本来网页特效中的escape()是将中文按iso-8859-1字符集进行url编码的,那样通过 request.getparameter()是能直接获取到请求参数的,但后来的javascript将escape()换成了unicode字符集编 码,如此一来,在jsp教程和servlet中就没法直接拿到请求参数了,具体原因我也不知道.  解决办法:         1.首先对中文字符进行两次escape()编码,如要传参数name,值为"你好",

AJAX中文乱码PHP完美解决方法

AJAX中文乱码问题,经过一个下午的努力终于完美解决,现将心得写下来,希望对那些还困绕在这个问题而头痛不已的人们有所帮助. 最近在做一个项目,遇到AJAX中文乱码问题,经过一个下午的努力终于完美解决,现将心得写下来,希望对那些还困绕在这个问题而头痛不已的人们有所帮助. 众所周知,使用AJAX传送和接收中文参数时,如果不在客户端和服务器做相应的处理就会出现乱码问题,在网上相应的文章也不少,但是有的情况下很难从中找到符合自己理想的答案,我今天就是在网上找了很多,但是都差不多,讲ASP和JSP的比较多

ajax中文乱码的各种解决办法总结_AJAX相关

由于XMLHTTP采用的是Unicode编码上传数据,而一般页面采用的是gb2312,这就造成显示页面时产生乱码.而当在获取页面时的XMLHttp返回的是utf-8编码,这就造成了显示产生乱码. 有一种解决办法就是使用encodeURIComponent加上修改 Content-Type 为 application/x-www-form-urlencoded" 来把数据统一编码成 url 格式,当然,也可以指定编码,如:"application/x-www-form-urlencode

AJAX中文乱码PHP中完美解决方法_AJAX相关

最近在做一个项目,遇到AJAX中文乱码问题,经过一个下午的努力终于完美解决,现将心得写下来,希望对那些还困绕在这个问题而头痛不已的人们有所帮助. 众所周知,使用AJAX传送和接收中文参数时,如果不在客户端和服务器做相应的处理就会出现乱码问题,在网上相应的文章也不少,但是有的情况下很难从中找到符合自己理想的答案,我今天就是在网上找了很多,但是都差不多,讲ASP和JSP的比较多(我是用的PHP),所以到最后都没找到自己满意的答案. AJAX的中文乱码可以大概分为两中,第一种是向服务器端发送中文参数时

ajax中文乱码多种解决办法

因为XMLHttp在处理返回的responstText的时候把responstBody按UTF-8编码进行解码的,如果服务器端送出的数据流的确是UTF-8编码,那么中文字就会正确显示,但如果是GBK或是其他编码则会出现上述情况. AJAX的中文乱码可以大概分为两中,第一种是向服务器端发送中文参数时(xmlhttp.open("get|post",url,true)),服务器端接收到的为乱码,这个也是我今天遇到的问题,没做处理之前,在IE里是正常的,但是在Firefox里面就出现了乱码,

ajax中文乱码解决方法总结

ajax乱码解决办法一: 在服务器指定发送数据的格式: 在jsp文件中: response.setContentType("text/text;charset=UTF-8");//返回的是txt文本文件 或是 response.setContentType("text/xml;charset=UTF-8");//返回的xml文件 PHP:header("Content-Type:text/html;charset=GB2312"); ajax乱码

ajax中文乱码各种解决办法总结

 由于XMLHTTP采用的是Unicode编码上传数据,而一般页面采用的是gb2312,这就造成显示页面时产生乱码.而当在获取页面时的XMLHttp返回的是utf-8编码,这就造成了显示产生乱码. 有一种解决办法就是使用encodeURIComponent加上修改 Content-Type 为 application/x-www-form-urlencoded" 来把数据统一编码成 url 格式,当然,也可以指定编码,如:"application/x-www-form-urlencod