巧用escape解决ASP.NET中URL传参乱码
日期:2007年12月18日 作者: 查看:[大字体 中字体 小字体]-
在test.aspx中,只要获取title参数的值并显示出来即可,本来用Request["title"]就可解决的问题却因链接所处页面的编码不同而变得复杂起来:
当链接所处的页面是用GB2312编码时,如果test.aspx也是GB2312则获取的参数值不乱码,否则乱码;
当链接所处的页面是用UTF-8编码时,如果test.aspx也是UTF-8则获取的参数值不乱码,否则乱码;gb.htm:
以下是引用片段:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>gb2312测试页</title>
</head>
<body>
<a href="#" onclick="window.open('http://www.aaa.com');">Links</a>
</body>
</html>
utf8.htm:以下是引用片段:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>utf-8测试页</title>
</head>
<body>
<a href="#" onclick="window.open('http://www.aaa.com');">Links</a>
</body>
</html>
test.aspx.cs:以下是引用片段:
private void Page_Load(object sender, System.EventArgs e)
{
String Request1;
Request1 = Request["title"];
Response.Write(Request1);
}有没办法让test.aspx不论URL中的参数以何种方式编码都能正常的获取显示呢?通过配置web.config的<globalization requestEncoding="gb2312utf-8" />都只会顾此失彼,不能完美的解决我们的问题。最终,在老农的提示下使用JS的escape问题得以完美解决:
gb.htm:以下是引用片段:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>gb2312测试页</title>
<script language="javascript">
function winopen(url,width,height)
{
var newurl,arrurl;
if(typeof(url) == "undefined" url == "")
{
return ;
}
else
{
if(url.indexOf("?") == -1)
{
newurl = url;
}
else
{
newurl = url.substring(0,url.indexOf("?")+1);
arrurl = url.substring(url.indexOf("?")+1).split("&");
for(var i =0;i<arrurl.length;i++)
{
newurl += arrurl[i].split("=")[0] + "=" + escape(arrurl[i].split("=")[1]) + "&";
}
newurl = newurl.substring(0,newurl.length-1);
}
}
if(typeof(width) != "number" typeof(height) != "number")
{
window.open(newurl);
}
else
{
window.open(newurl,"","width=" + width + ",height=" + height);
}
}
</script>
</head>
<body>
<a href="#" onclick="winopen('http://www.aaa.com">Links</a>
</body>
</html>utf8.htm:
以下是引用片段:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>utf-8测试页</title>
<script language="javascript">
function winopen(url,width,height)
{
var newurl,arrurl;
if(typeof(url) == "undefined" url == "")
{
return ;
}
else
{
if(url.indexOf("?") == -1)
{
newurl = url;
}
else
{
newurl = url.substring(0,url.indexOf("?")+1);
arrurl = url.substring(url.indexOf("?")+1).split("&");
for(var i =0;i<arrurl.length;i++)
{
newurl += arrurl[i].split("=")[0] + "=" + escape(arrurl[i].split("=")[1]) + "&";
}
newurl = newurl.substring(0,newurl.length-1);
}
}
if(typeof(width) != "number" typeof(height) != "number")
{
window.open(newurl);
}
else
{
window.open(newurl,"","width=" + width + ",height=" + height);
}
}
</script>
</head>
<body>
<a href="#" onclick="winopen('http://www.aaa.com');">Links</a>
</body>
</html>现在完全不用考虑链接所在页面的编码方式,也不用绞尽脑汁去想如何在test.aspx对不同编码的参数值进行转换,只需用一个escape就够了,very good!
(出处:急速软件下载学院)
-
- 巧用escape解决ASP.NET中URL传参乱码 相关文章:
- ·巧用escape解决ASP.NET中URL传参乱码
- ·PHP连接远程MYSQL和MYSQL5.1中文乱码处理方法
- ·硬件高手 快速排除打印乱码故障
- ·对于网页制作中的乱码问题的解决
- ·技巧:系统复制文字粘贴变乱码解决方法
- ·ASP读sql数据时出现乱码问题的解决方法
- ·对JSP页面传值中文乱码的简单解决方法
- ·MYSQL EMS的乱码问题解决
- ·解决JSP中使用request乱码问题
- ·MySQL数据库中数据库移植中的乱码问题
- 巧用escape解决ASP.NET中URL传参乱码 相关软件
- ·乱码文件批量转换器V1.2
- ·乱码文件批量转换器 V1.1
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:理解ASP.NET中的三层结构
精品推荐
热点TOP10
- ·Community Server专题三:HttpModule
- ·ASP.Net2.0 GridView 多列排序,显示排序图标,分页
- ·根据选择的树形节点用asp.net结合dw和js动态生成可移动可展开的层
- ·在 ASP.NET 2.0 中上载文件
- ·通过webservices上传下载文件
- ·让ASP.NET简便使用SCRIPT
- ·CMPP SP端 C# 实例
- ·生成 ContentRotator ASP.NET 服务器控件
- ·揭开ASP.NET中Cookie编程的奥秘
- ·生成静态文件的新闻系统核心代码(.net C#)
- ·ASP.NET技巧:用MasterPage 代替 PageBase
- ·ASP.NET2.0数据操作之母板页和站点导航
- ·C#捕捉摄相头的数据流
- ·理解并扩展 ASP.NET 2.0 中的站点导航系统
- ·Community Server专题四:HttpHandler
- ·DataList嵌套实例
- ·ASP.NET技巧:教你制做Web实时进度条
- ·将图片插入数据库并使用asp.net读取出来的正确方法
- ·ASP.NET:Repeater控件的详解
- ·如何在上传的图片上加上版权文字
特别推荐
- ·.net基础知识错误注意二十二点知识
- ·asp.net2.0学习历程 菜鸟到中级程序员的飞跃
- ·.NET基础知识-什么是.NET
- ·初学C#+ASP.NET+Oracle时积累的备忘点滴
- ·专家详解:复杂表达式的执行步骤
- ·asp.net中的加密方法
- ·DataGrid常见关注问题解决方案
- ·学习笔记 ASP.NET 5种页面转向法
- ·ASP.NET网络编程中经常会用到的27个函数集
- ·ASP.NET之上传文件管理策略
- ·专家:用.NET动态创建类的实例讲解
- ·ASP.NET WEB服务和Flash打造MP3播放器
- ·精通ASP.NET中弹出窗口技术
- ·asp.net常用代码
- ·asp.net创建文件夹的IO类的问题
- ·Asp.Net函数集
- ·Asp.net cache 简述
- ·如何最大限度提高.NET的性能 (续)
- ·.NET编程规范
- ·Asp.net1.1升级到2.0遇到的一些问题总结
