雨风的个人网站(分享一些学习笔记)

青箬笠,绿蓑衣,细雨斜风不须归
 
 
.net4.0 winform中的urlencode函数 (2019/1/5 11:58:00)
分类:多耐特 | 标签:urlencode .netframework 

 在asp中可以用server.UrlEncode()方法将参数编码,在早期.net版本中也可以用ystem.Web.HttpUtility.UrlEncode()方法

但是在.net 4.0以后的framework这以方法不适用了,

在网上找了下,说可以用System.Uri.EscapeDataString()和System.Uri.EscapeUriString()来实现,但是经过测试,这2个方法的encode之后的编码和server.UrlEncode编码一样

找了很久,想了下,自己用一个自定义函数来实现,将+-*!@#等特殊字符用asp中的server.UrlEncode输出,然后在C#代码中replace。asp代码如下:

straaaa="
~!@#$%^&*()_+=-\></
? *.'"",|[]{}"
 for i=1 to len(straaaa)
  strbbbbb=mid(straaaa,i,1)
  response.write "ParaUrl = ParaUrl.Replace(""" & strbbbbb & """, """ & server.UrlEncode(strbbbbb) & """);<br />"
 next

最后生成的网页内容为:

ParaUrl = ParaUrl.Replace("~", "%7E");
ParaUrl = ParaUrl.Replace("!", "%21");
ParaUrl = ParaUrl.Replace("@", "%40");
ParaUrl = ParaUrl.Replace("#", "%23");
ParaUrl = ParaUrl.Replace("$", "%24");
ParaUrl = ParaUrl.Replace("%", "%25");
ParaUrl = ParaUrl.Replace("^", "%5E");
ParaUrl = ParaUrl.Replace("&", "%26");
ParaUrl = ParaUrl.Replace("*", "%2A");
ParaUrl = ParaUrl.Replace("(", "%28");
ParaUrl = ParaUrl.Replace(")", "%29");
ParaUrl = ParaUrl.Replace("_", "%5F");
ParaUrl = ParaUrl.Replace("+", "%2B");
ParaUrl = ParaUrl.Replace("=", "%3D");
ParaUrl = ParaUrl.Replace("-", "%2D");
ParaUrl = ParaUrl.Replace("\", "%5C");
ParaUrl = ParaUrl.Replace(">", "%3E");
ParaUrl = ParaUrl.Replace("<", "%3C");
ParaUrl = ParaUrl.Replace("/", "%2F");
ParaUrl = ParaUrl.Replace("?", "%3F");
ParaUrl = ParaUrl.Replace(" ", "+");
ParaUrl = ParaUrl.Replace("*", "%2A");
ParaUrl = ParaUrl.Replace(".", "%2E");
ParaUrl = ParaUrl.Replace("'", "%27");
ParaUrl = ParaUrl.Replace(""", "%22");
ParaUrl = ParaUrl.Replace(",", "%2C");
ParaUrl = ParaUrl.Replace("|", "%7C");
ParaUrl = ParaUrl.Replace("[", "%5B");
ParaUrl = ParaUrl.Replace("]", "%5D");
ParaUrl = ParaUrl.Replace("{", "%7B");
ParaUrl = ParaUrl.Replace("}", "%7D");


把上述内容添加到C#的自定义函数里面即可(注意%和转义):

pstring UrlEncode(string ParaUrl) {
            ParaUrl = ParaUrl.Replace("+", "%2B");
            ParaUrl = ParaUrl.Replace("~", "%7E");
            ParaUrl = ParaUrl.Replace("!", "%21");
            ParaUrl = ParaUrl.Replace("@", "%40");
            ParaUrl = ParaUrl.Replace("#", "%23");
            ParaUrl = ParaUrl.Replace("$", "%24");
            
//ParaUrl = ParaUrl.Replace("%", "%25");
            ParaUrl = ParaUrl.Replace("^", "%5E");
            ParaUrl = ParaUrl.Replace("&", "%26");
            ParaUrl = ParaUrl.Replace("*", "%2A");
            ParaUrl = ParaUrl.Replace("(", "%28");
            ParaUrl = ParaUrl.Replace(")", "%29");
            ParaUrl = ParaUrl.Replace("_", "%5F");
            ParaUrl = ParaUrl.Replace("+", "%2B");
            ParaUrl = ParaUrl.Replace("=", "%3D");
            ParaUrl = ParaUrl.Replace("-", "%2D");
            ParaUrl = ParaUrl.Replace("
\\","%5C
");
            ParaUrl = ParaUrl.Replace(">", "%3E");
            ParaUrl = ParaUrl.Replace("<", "%3C");
            ParaUrl = ParaUrl.Replace("/", "%2F");
            ParaUrl = ParaUrl.Replace("?", "%3F");
            ParaUrl = ParaUrl.Replace(" ", "%20");
            ParaUrl = ParaUrl.Replace("*", "%2A");
            ParaUrl = ParaUrl.Replace(".", "%2E");
            ParaUrl = ParaUrl.Replace("*", "%2A");
            ParaUrl = ParaUrl.Replace(".", "%2E");
            ParaUrl = ParaUrl.Replace("'", "%27");
            ParaUrl = ParaUrl.Replace("\"", "%22");
            ParaUrl = ParaUrl.Replace(",", "%2C");
            ParaUrl = ParaUrl.Replace("|", "%7C");
            ParaUrl = ParaUrl.Replace("[", "%5B");
            ParaUrl = ParaUrl.Replace("]", "%5D");
            ParaUrl = ParaUrl.Replace("{", "%7B");
            ParaUrl = ParaUrl.Replace("}", "%7D");
            return ParaUrl;
            
        }

然后调用UrlEncode函数即可


阅读(3436) | 评论(0)
相关文章
暂无相关文章!
评论
暂无评论!
昵称: * QQ:
Email: Website:
内容: *
验证码:  显示/刷新验证码 *
文章分类
电脑网络(3)
多耐特(1)
微信公众平台(3)
网站开发(3)
计算机基础(0)
智慧校园(1)
其他分类(0)
 
热门文章
一个简单的收缩菜单(15026)
asp版微信公众平台开发代码(7945)
个人订阅号实现网页获取用户openid(asp版)(7528)
asp微信公众平台申请及开发设置(6017)
迷宫求解(js)(4073)
 
热门标签
asp(5050,3)  webservice(4076,1)  xml(3818,1)  微信公众平台(353,2)  关联度(,1)  订阅号(,1)  订阅号网页(,1)  网页获取openid(,1)  微信平台开发(,1)  学习笔记(,1)  迷宫求解(,1)  云技术(,1)  javascript(,1)  相关性(,1)  相似文章(,1)  相关文章(,1)  智慧教室(,1)  msxml2.XmlHttp(,1)  ubuntu(,1)  乌班图(,1)  甲骨文云(,1)  Nosupportedauthenticationmethodsavailable(,1)  批处理(,1)  bat(,1)  订阅号获取openid(,1)  批量修改文件名(,1)  publickey(,1)  msxml3.dll(,1)  系统未找到制定资源(,1)  折叠菜单(,1)  收缩菜单(,1)  .netframework(,1)  urlencode(,1)  ren(,1)  
 
最新评论
© 雨风的个人网站(分享一些学习笔记) 2016-2022 版权所有 渝ICP备2021003333号-1