asp接收jquery post 中文乱码问题!
这个问题的解决主要还是通过url编码对中文进行处理,在服务后台代码中,进行url解码处理。
但是问题来了,asp没有解码的内置函数,只有一个编码的内置函数UrlEncode,而用UrlEncode进行编码出来的字符和js内置的3个编码(escape,encodeURI,encodeURIComponent)函数编码出来的字符串也不一样,原因没深入的了解,但是应该是JS的编码函数是通过uft-8的编码方式进行字符串编码,而asp应是gb2312进行的。
基于对以上情况的分析基本找到了问题的原因,那么要怎么解决呢,我们需要对js传过来的编码过后的字符进行解码,以下是网上找到的一段解码函数:
Function URLDecode(enStr)
dim deStr,strSpecial
dim c,i,v
deStr=""
strSpecial="!""#$%&'()*+,.-_/:;< =>?@[/]^`{|}~%"
for i= to len(enStr)
c=Mid(enStr,i,)
if c="%" then
v=eval("&h"+Mid(enStr,i+,))
if inStr(strSpecial,chr(v))> then
deStr=deStr&chr(v)
i=i+
else
v=eval("&h"+ Mid(enStr,i+,) + Mid(enStr,i+,))
deStr=deStr & chr(v)
i=i+
end if
else
if c="+" then
deStr=deStr&" "
else
deStr=deStr&c
end if
end if
next
URLDecode=deStr
End function
这个函数可以对asp内置编码函数进行解码,但显然不是我们要的,我们要的是对utf-8方式进行编码的字符进行解码,于是又在网上找到了一个utf-8的解码代码:
Function UrlDecode_GBToUtf8(ByVal str)
Dim B,ub ''中文字的Unicode码(2字节)
Dim UtfB ''Utf-8单个字节
Dim UtfB1, UtfB2, UtfB3 ''Utf-8码的三个字节
Dim i, n, s
n=
ub=
For i = To Len(str)
B=Mid(str, i, )
Select Case B
Case "+"
s=s & " "
Case "%"
ub=Mid(str, i + , )
UtfB = CInt("&H" & ub)
If UtfB< Then
i=i+
s=s & ChrW(UtfB)
Else
UtfB1=(UtfB And &H0F) * &H1000 ''取第1个Utf-8字节的二进制后4位
UtfB2=(CInt("&H" & Mid(str, i + , )) And &H3F) * &H40 ''取第2个Utf-8字节的二进制后6位
UtfB3=CInt("&H" & Mid(str, i + , )) And &H3F ''取第3个Utf-8字节的二进制后6位
s=s & ChrW(UtfB1 Or UtfB2 Or UtfB3)
i=i+
End If
Case Else ''Ascii码
s=s & B
End Select
Next
UrlDecode_GBToUtf8 = s
End Function
最后我们为了页面的编码统一一般会在页面最上方加入asp的编码声明(基于gb2312的):
<%@ codepage=%>
<%Response.Charset = "gb2312"%>
如果是utf-8的就用:
<%@ codepage=%>
<%Response.Charset = "utf-8"%>
asp接收jquery post 中文乱码问题!的更多相关文章
- 【转】asp.net Cookie值中文乱码问题解决方法
来源:脚本之家.百度空间.网易博客 http://www.jb51.net/article/34055.htm http://hi.baidu.com/honfei http://tianminqia ...
- controller接收前台数据—中文乱码问题
项目用的开发环境为tomcat+eclipse+SSM 正如题目,controller接收前台数据-中文乱码问题,在页面编码为UTF-8的前提下,解决方案有二: 一) controller接收数据时, ...
- jQuery AJAX中文乱码处理
最近工作中用jQuery ajax返回出现乱码,用的Notepad++编辑器,当JS部分传递中文时,另一页面接收的话会出现乱码,在网上找了很多方法,基本上没有很好的解决. 页面用GB2312编码,JS ...
- asp.net 导出excel 中文乱码解决方法 (转)
用我转载的上一篇文章 Asp.net中把DataTable或DataGrid导出为Excel 导出的文档,中文有乱码现象,其实要解决中文乱码很简单,设置一下字符集.如下: // 设置编码和附件格式 c ...
- 解决SpringMvc后台接收json数据中文乱码问题
原因分析 使用ajax从前台页面传输数据到后台controller控制器的时候,出现中文乱码 其实乱码问题出现的原因,就是由于默认的tomcat配置,接收请求是以ISO-8859-1来转码,导致中文出 ...
- jQuery load() 中文乱码
1.使用editplus创建了demo.txt (ANSI保存的), $("#div1").load("demo.txt");//div显示中文乱码---> ...
- asp+jQuery解决中文乱码
1. [代码][ASP/Basic]代码 '在客户端使用javascript的escape()方法对数据进行编码,在服务器端使用对等的VbsUnEscape()对数据进行解码,同样在服务器端使用Vbs ...
- asp.net core输出中文乱码的问题
摘要 在学习asp.net core的时候,尝试在控制台,或者页面上输出中文,会出现乱码的问题. 问题重现 新建控制台和站点 public class Program { public static ...
- jQuery插件中文乱码解决办法
修改jQuery插件源代码的时候,中文字符有时候会显示乱码,通常这个插件是老外写的,默认文件的编码格式ANSI格式,源代码写中文字符的时候就会显示乱码,解决方法就是将文件编码格式换成UTF-8格式 保 ...
随机推荐
- statpot:使用mongo+bootstrap+highcharts做统计报表
最近做了一个统计项目,这个统计项目大致的需求是统计接口的访问速度.客户端会调用一个接口来记录接口的访问情况,我的需求就需要分析这些数据,然后做出个统计报表. 需求实现 最初的时候想着每天把这些接口访问 ...
- 浅谈WeakHashMap
Java WeakHashMap 到底Weak在哪里,它真的很弱吗?WeakHashMap 的适用场景是什么,使用时需要注意些什么?弱引用和强引用对Java GC有什么不同影响?本文将给出清晰而简洁的 ...
- 设计模式--简单工厂(Factory)模式
温故而知新,看了以前写的博文<Asp.net读取Excel文件 2>http://www.cnblogs.com/insus/archive/2011/05/05/2037808.html ...
- 有关CLR的初学小整理(可能理解不深刻,望大牛指出)
1. .Net程序通过CLR去加载运行管理代码, 加载CLR的进程成为“宿主”,通常操作系统加载. 加载CLR的进程也可以为某个DLL,也成为“宿主” 2. 宿主接口使宿主能够对运行库的更多方面进行控 ...
- 【jQuery基础学习】11 jQuery性能简单优化
关于性能优化 合适的选择器 $("#id")会直接调用底层方法,所以这是最快的.如果这样不能直接找到,也可以用find方法继续查找 $("p")标签选择器也是直 ...
- 线段树或树状数组---Flowers
题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=4325 Description As is known to all, the blooming tim ...
- java猜数字游戏
import java.util.Scanner; //导入包 class GuessNum { public static void main(String[] args) { int num = ...
- javascript中||和&&代替if
首先,我们来看一段代码: ; ){ add_level = ; } ){ add_level = ; } ){ add_level = ; } ){ add_level = ; } else { ad ...
- js事件绑定
事件绑定,常见的是odiv.onclick=function(){..........}; 这种方式绑定事件太单一,如果绑定多个,那么最后一个事件会覆盖掉之前的,也就是说只执行最后一次绑定的事件,这 ...
- 浅谈ES6中的Proxy
Proxy是一个很有趣的对象,它能够修改某些操作的默认行为,等同于在语言层面做出修改,属于一种‘元编程’,即对编程语言进行编程. Proxy其实很好理解,就是在目标对象之前架设一层拦截,外界的访问都得 ...