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

 更新时间:2008年10月10日 21:48:27   作者:  
写了个通过一般处理程序处理的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, 问题解决!
其他可能还有别的办法至今没遇到 希望这个办法能帮到遇到这种困境的朋友

相关文章

  • JavaScript实现Ajax总结

    JavaScript实现Ajax总结

    ajax应用非常普及,ajax的优点大家都知道,具体就不多说了,其缺点还真不少,比如破坏浏览器的back功能,同一个url打开的界面并不是完全相同,还有安全性能等方面,至于有这么多的缺点,也阻止不了大家使用ajax的步伐,下文给大家分享javascript实现ajax小结吧
    2015-10-10
  • ajax同步验证单号是否存在的方法

    ajax同步验证单号是否存在的方法

    这篇文章主要介绍了ajax同步验证单号是否存在的方法,涉及基于ajax的数据交互相关操作技巧,需要的朋友可以参考下
    2016-08-08
  • 浅谈ajax请求技术

    浅谈ajax请求技术

    下面小编就为大家带来一篇浅谈ajax请求技术。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • ajaxFileupload实现多文件上传功能

    ajaxFileupload实现多文件上传功能

    这篇文章主要为大家详细介绍了ajaxFileupload实现多文件上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Ajax实现静态刷新页面过程带加载旋转图片

    Ajax实现静态刷新页面过程带加载旋转图片

    当然你也可以使用jquery或者ajax写动态加载table的方式来实现,方式多种多样,感兴趣的朋友可以了解下,希望本文提供的静态刷新页面对你学习ajax有所帮助
    2013-02-02
  • Ajax 的初步实现(使用vscode+node.js+express框架)

    Ajax 的初步实现(使用vscode+node.js+express框架)

    这篇文章给大家介绍使用vscode+node.js+express框架操作ajax的初步实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-06-06
  • ajax实现输入提示效果

    ajax实现输入提示效果

    这篇文章主要为大家详细介绍了ajax实现输入提示效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Ajax登陆使用Spring Security缓存跳转到登陆前的链接

    Ajax登陆使用Spring Security缓存跳转到登陆前的链接

    这篇文章主要介绍了Ajax登陆使用Spring Security缓存跳转到登陆前的链接,需要的朋友可以参考下
    2019-04-04
  • 空格或者空白字符导致$.ajax()报parseerror错误小结

    空格或者空白字符导致$.ajax()报parseerror错误小结

    这篇文章主要介绍了空格或者空白字符导致$.ajax()报parseerror错误,需要的朋友可以参考下
    2014-04-04
  • 快速解决ajax传递为空但显示在页面上为undefined的问题

    快速解决ajax传递为空但显示在页面上为undefined的问题

    今天小编就为大家分享一篇快速解决ajax传递为空但显示在页面上为undefined的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08

最新评论