`
xiang588
  • 浏览: 305696 次
  • 性别: Icon_minigender_1
  • 来自: 甘肃平凉
社区版块
存档分类
最新评论

asp,jquery,ajax中文乱码解决办法

阅读更多
>1、只要在ajax中有数据提交时,如果页面编码不是utf-8的,都应该对提交的数据进行编码,js的编码函数为escape()
2、在服务器端页接收数据后进行解码,然后对数据进行相关的处理后再编码
3、返回到客户端后再解码
4、如果没有提交数据,而是直接从服务器端获取数据,那直接在服务器页面设置Response.Charset="gb2312"即可,不用再编码解码
vbscript中分别对应js中的escape()和unescape()函数
程序代码 程序代码
<%
          '与javascript中的escape()等效
    Function VbsEscape(str)
        dim i,s,c,a 
        s="" 
        For i=1 to Len(str) 
            c=Mid(str,i,1)
            a=ASCW(c)
            If (a>=48 and a<=57) or (a>=65 and a<=90) or (a>=97 and a<=122) Then
                s = s & c
            ElseIf InStr("@*_+-./",c)>0 Then
                s = s & c
            ElseIf a>0 and a<16 Then
                s = s & "%0" & Hex(a)
            ElseIf a>=16 and a<256 Then
                s = s & "%" & Hex(a)
            Else
                s = s & "%u" & Hex(a)
            End If
        Next
        VbsEscape=s
    End Function
    '与javascript中的unescape()等效
    Function VbsUnEscape(str)
                    Dim x
        x=InStr(str,"%") 
        Do While x>0
            VbsUnEscape=VbsUnEscape&Mid(str,1,x-1)
            If LCase(Mid(str,x+1,1))="u" Then
                VbsUnEscape=VbsUnEscape&ChrW(CLng("&H"&Mid(str,x+2,4)))
                str=Mid(str,x+6)
            Else
                VbsUnEscape=VbsUnEscape&Chr(CLng("&H"&Mid(str,x+1,2)))
                str=Mid(str,x+3)
            End If
            x=InStr(str,"%")
        Loop
        VbsUnEscape=VbsUnEscape&str
    End Function
%>
来个演示:

客户端页:client.html

程序代码 程序代码
<script>
    //jquery的post
    $.post
    (
        'server.asp',
        {
            Act:'DoSubmit',
            UserName:escape('西楼冷月'),//进行编码
           WebSite:'www.chinacms.org'
        },
        function(data)
        {
            alert(unescape(data));//对返回数据进行解码
        }
    );
    
</script>

服务器端页:server.asp
程序代码 程序代码
<%
                Response.Charset="gb2312"
    Dim UserName,WebSite
    If Request.Form("Act")="DoSubmit" Then
                               UserName=Request.Form("UserName")
        WebSite =Request.Form("WebSite")

        '在服务器端解码
        UserName=VbsUnEscape(UserName)//解码

        '处理数据
        '---省略数据处理部分

        '数据处理后输出,先用VbsEscape()编码
        'by www.chinacms.org
        Response.Write VbsEscape(UserName)
    End If
%>
分享到:
评论

相关推荐

    jquery+asp ajax 中文乱码问题解决文档

    jquery+asp ajax 中文乱码问题解决文档

    Asp中用法JQuery的AJAX提交中文乱码解决方法_.docx

    AJAX提交中文乱码解决方法在Asp中使用JQuery AJAX(Asynchronous JavaScript and XML)是一种异步请求数据的技术,用于实现网页的局部刷新,而不需要重新加载整个网页。然而,在使用AJAX时,中文乱码问题经常会出现...

    Asp中使用JQuery的AJAX提交中文乱码解决方法

    主要介绍了Asp中使用JQuery的AJAX提交中文乱码解决方法,使用Asp中的unescape() 和escape() 函数即可解决乱码问题,需要的朋友可以参考下

    用jquery ajax asp实现的搜索引擎的输入输出

    用jquery ajax asp实现的搜索引擎的输入输出 功能点: (1)读写cookie (2)在js中获取asp请求中的数据 (3)使用jquery ajax实现的翻页功能 (4)解决通过ajax转发后,搜索结果列表中文乱码的问题

    AJAX中文乱码问题探讨及解决

    AJAX中文问题分为两大类:一是发送路径中的参数有中文,在服务器段接收参数值是乱码二是返回来的responseText或responseXML的值中含有中文是乱码,下面为大家介绍下解决方法

    Xluo Query大型聊天室 v3.0 ASP.NET.rar

    Xluo JQuery聊天室此聊天室是采用JQuery和.NET编写的,程序非常简单,除了一个ajax.aspx动态页面 其余页面全是静态页面!为了防止中文乱码,我已经默认在web.config里面添加

    基于MVC的Asp.net会员管理系统

    内容索引:.NET源码,会员交友,会员管理,管理系统 会员管理程序, MVC开发,又结合了jQuery框架AJAX技术,适合学习的...登录部分采用的了Form身份验证,WebServices、Linq、数据加密解密,使用DES解决了中文乱码问题等。

    X-Blog V1.0 正式版

    如遇出现乱码,请根据你的空间来设置,分两种情况 如本地测试,则在IIS自定义错误页中编辑500:100,消息类型为:URL,地址填写/500-100.asp 如在虚拟主机中,则在自定义错误项中选则500-100,地址填写500-100.asp ...

    DotNetTextBox V6.0.10 商业版 下载 (已知最新)

    6)增加AjaxSupport目录,使用此目录的文件覆盖原版同名文件后重新编译即可解决在Asp.Net Ajax UpdatePanel下工作不正常的BUG!(不需要使用asp.net ajax的用户无需覆盖此目录的文件) 7)增加asp.net ajax的演示例子...

    商用版本文本编辑器DotNetTextBoxV6.0.8Source 源码

    6)增加AjaxSupport目录,使用此目录的文件覆盖原版同名文件后重新编译即可解决在Asp.Net Ajax UpdatePanel下工作不正常的BUG!(不需要使用asp.net ajax的用户无需覆盖此目录的文件) 7)增加asp.net ajax的演示例子...

    文章管理系统

    11.解决后台编辑器之前空2格低于一个汉字的问题 12.完善几个细节问题 13.整合20121103~20121220补丁 2012年12月20日 ★更新方式:admin文件夹改成你后台目录名,然后补丁包里的所有文件覆盖进去。 1.富媒体...

Global site tag (gtag.js) - Google Analytics