- 兄弟打印机每次扫描图像文件总是显示连接至计算机
- 判断asp.net上传图片时图片RGB或CMYK模式的方法
- 一段自适应高度的圆角css矩形
- HTTP Get与Post的区别
- C#项目传到服务器上出现运行时错误
- 如何高效利用问答平台做网络推广
- 手机网页的制作方法四_WML语言基础
- 小程序中token介绍
- 优化Google的12个技术要点
- .NET三层架构开发初步
邮箱:
手机:15383239821
asp.net中的url编码解码(转) .
在对url进行编码时,该用哪一个?这两都使用上有什么区别吗?
测试:
string server_urlencode=server.urlencode(file);
string server_urldecode=server.urldecode(server_urlencode);
string httputility_urlencode=system.web.httputility.urlencode(file);
string httputility_urldecode=system.web.httputility.urldecode(httputility_urlencode);
response.write("原数据:"+file);
sfun.writeline("server.urlencode:"+server_urlencode);
sfun.writeline("server.urldecode:"+server_urldecode);
sfun.writeline("httputility.urlencode:"+httputility_urlencode);
sfun.writeline("httputility.urldecode:"+httputility_urldecode);
输出:
原数据:文件上(传)篇.doc
server.urlencode:%ce%c4%bc%fe%c9%cf%a3%a8%b4%ab%a3%a9%c6%aa.doc
server.urldecode:文件上(传)篇.doc
httputility.urlencode:%e6%96%87%e4%bb%b6%e4%b8%8a%ef%bc%88%e4%bc%a0%ef%bc%89%e7%af%87.doc
httputility.urldecode:文件上(传)篇.doc
区别在于:httputility.urlencode()默认是以utf8对url进行编码,而server.urlencode()则以默认的编码对url进行编码。
在用 asp.net 开发页面的时候, 我们常常通过 system.web.httputility.urlencode 和 urldecode 在页面间通过 url 传递参数. 成对的使用 encode 和 decode 是没有问题的.
但是, 我们在编写文件下载的页面的时候, 常常用如下方法来指定下载的文件的名称:
+ httputility.urlencode(filename, encoding.utf8));
之所以转换成 utf8 是为了支持中文文件名.
这 时候问题就来了, 因为 httputility.urlencode 在 encode 的时候, 将空格转换成加号('+'), 在 decode 的时候将加号转为空格, 但是浏览器是不能理解加号为空格的, 所以如果文件名包含了空格, 在浏览器下载得到的文件, 空格就变成了加号.
一个解决办法是, 在 httputility 的 urlencode 之后, 将 "+" 替换成 "%20"( 如果原来是 "+" 则被转换成 "%2b" ) , 如:
filename = httputility.urlencode(filename, encoding.utf8);
filename = filename.replace("+", "%20");不明白微软为什么要把空格转换成加号而不是"%20". 记得 jdk 的 urlencoder 是将空格转换成 "%20"的.
经检查, 在 .net 2.0 也是这样.
上面是从别的地方拷贝的,写得很好,我自己的一个程序中也遇到同样的问题,默认aspx是以utf-8为编码的,在我这个程序中必须用gb2312为默认编码
(<globalization requestencoding="gb2312" responseencoding="gb2312"/>),
问 题出现了,以前没有问题的httputility.urldecode在page.request回的值是乱码这就是上面说的 httputility.urldecode默认以utf8对url进行编码,这种情况下面只需将httputility.urldecode改成 server.urlencode即可。
-
2012-08-14网站优化过度被惩罚降权的表现
-
2025-10-15.NET 8 中 Program.cs 的标准结构详解
-
2023-09-07MySQL下载步骤详解
-
2010-07-20SEO关键词分类及选择举例
-
2013-08-26如何做站内优化
-
2010-01-04"因为选定的用户拥有对象,所以无法除去该用户"解决方法
