Javascript与ASP.NET(一般处理程序)关于URL(get方式)传递中文乱码问题的解决方案
2013-01-31 10:12
876 查看
一、首先,说一下我要实现的功能
根据老师ID、学年、学期,查询该教师教授的课程信息。二、传递参数我遇到的问题:
我通过传递教师ID、学年和学期从数据库查询出该教师所教的课程信息,展现在界面上,从数据库我能查询出数据,为什么在界面不出数据呢,我断点调试,发现这样一个现象。我在js中传递的参数,在一般处理程序中获取时,是这样显示的:于是有了这篇文章的诞生,通过对此问题的搜索,让我了解了编码解码的一些基本知识。
在实际的开发中,我们在页面和页面之间进行数据传递的时候,有时我们会选择Get方式传递参数,例如:
url: "../handler/QueryCourseByTeacher.ashx?TeacherID=" + teacherID.value + "&SchoolYear=" +getschyearvalue + "&Semester=" + getsemestervalue + "&t=" + new Date().getTime(),这是用js传递参数给一般处理程序页面,然后将传递的参数作为参数,在数据库进行查找相关数据,其中getschyearvalue与getsemestervalue为中文参数,当我们使用这种方式去查找数据的时候,就会出现我上图中的乱码问题,因为我们需要注意的是:凡是通过get方式进行URL传递中文参数一定要进行URL编码!
三、了解一下百科中对URL编码的解释
url编码是一种浏览器用来打包表单输入的格式。浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器。不管哪种情况,在服务器端的表单输入格式样子象这样: theName=Ichabod+Crane&gender=male&status=missing& ;headless=yes |
每对name/value由&;符分开;每对来自表单的name/value由=符分开。如果用户没有输入值给这个name,那么这个name还是出现,只是无值。任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,当然也包括象 =,&;,和 % 这些特殊的字符。其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如“\”,它的ascii码是92,92的十六进制是5c,所以“\”的url编码就是%5c。那么汉字的url编码呢?很简单,看例子:“胡”的ascii码是-17670,十六进制是BAFA,url编码是“%BA%FA”。 |
四、如何解决URL中文参数传递编码问题?
1、首先,js中,进行URL编码(使用escape)url: "../handler/QueryCourseByTeacher.ashx?TeacherID=" + teacherID.value + "&SchoolYear=" + escape(getschyearvalue) + "&Semester=" + escape(getsemestervalue) + "&t=" + new Date().getTime(),
2、一般处理程序或.ASPX接收页面进行接收参数并解码,使用(context.Server.UrlDecode):
//学年 string strSchoolYear = context.Server.UrlDecode(context.Request.QueryString["SchoolYear"]); //学期 string strSemester = context.Server.UrlDecode(context.Request.QueryString["Semester"]);
这样传递中文就不会出现乱码问题了。
相关文章推荐
- Javascript与ASP.NET(一般处理程序)关于URL(get方式)传递中文乱码问题的解决方案
- ASP.NET中url传递中文的解决方案,传递参数为汉字时出现乱码等问题
- get方式url传递值是中文乱码JavaScript/Java工具类编码及解码互用
- Javascript escape 解决 Jquery Ajax 异步请求 URL中文传参乱码问题 一般处理程序Handler获取参数
- 关于asp.net页面通过url传值,中文出现乱码的一些有趣的问题~~~
- ASP.NET, IE6下URL中文乱码问题 ASP.NET程序,当URL后缀包含奇数个中文字符
- asp.net jquery getjson 传递中文参数乱码问题
- ASP.NET url传递中文 字符乱码问题
- 关于url参数中文乱码的问题 【asp.net C#】
- asp.net jquery getjson 传递中文参数乱码问题
- 关于javascript URL 传递参数乱码的问题及解决方案。
- ASP.NET关于前台脚本传递中文参数,后台获取乱码问题(乱码为方框,黑色方框等。。)
- Jsp以get方式提交中文及特殊字符,javascript处理乱码问题
- 关于javascript URL 传递参数乱码的问题及解决方案。
- 解决get方法传递URL参数中文乱码问题
- ASP.NET中url传递中文的解决方案
- ASP.NET 页面通过url传递参数,另一页面通过Request.QueryString获取参数为乱码问题
- asp.net插入sql server 中文乱码问题解决方案
- ASP.NET一般处理程序访问Session问题
- Struts2中使用GET方式传递中文参数出现乱码的解决方案