全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JavaScript、C# URL编码、解码总结

JavaScript部分

encodeURI() (解码为:decodeURI()):不会转义的字符:- _ . ! ~ * ‘ ( ) ;/?:@&=+$,#

例如:
encodeURI(“https://www.?a=-_.!~*'();/?:@&=+$,#”)
输出:
“https://www.?a=-_.!~*'();/?:@&=+$,#”

encodeURIComponent() (解码为:decodeURIComponent() ):不会转义的字符: – _ . ! ~ * ‘ ( )

例如:

encodeURIComponent(“https://www.?a=-_.!~*'();/?:@&=+$,#”)

输出:

“http%3A%2F%2Fwww.%3Fa%3D-_.!~*'()%3B%2F%3F%3A%40%26%3D%2B%24%2C%23”

区别:对于;/?:@&=+$,#这些字符的处理。

还有个附加的: escape() ,不过 ECMAScript v3 反对使用该方法。原因猜测是根据转义序列有关,escape()的转移序列为:
对于代码单元小于等于0xFF的被替换字符,使用 %xx 格式的两位数转义序列。对于代码单元大于0xFF的被替换字符,使用 %uxxxx 格式的四位数转义序列。
具体的可以研究一下ECMAScript的规范,由于本人道行太浅,就不深入研究了,哈。。 unescape() 同样不推荐使用。

C#部分:

C#部分比较混乱,不仅有很多urlencode,还有好多htmlencode。但其实在处理url时我们只关注url部分就好了,html那部分当我们处理html时才会用到,如预防xss攻击时应该就需要那些htmlencode,htmldecode了。

下面说一下url的常用方法:

Server.UrlEncode(解码:Server.UrlDecode):
Server.UrlEncode使用系統预设编码做为参数调用HttpUtility.UrlEncode编码,所以如果系统全局都用UTF8格式编码,这两个方法就是一样的(至于是否使用了系统预设编码这个还有待考证,没有找到官方说法)。
HttpUtility.UrlEncode(解码:HttpUtility. UrlDecode)

例如:

HttpUtility.UrlEncode(“https://www.?a=-_.!~*'();/?:@&=+$,#”)

输出:

http%3a%2f%2fwww.%3fa%3d-_.!%7e*%27()%3b%2f%3f%3a%40%26%3d%2b%24%2c%23

可见:此方法会对url地址进行编码。但是有一点要知道,就是此方法会把空格编码为+号而不是十六进制的%20,所以此方法编码参数中如果存在空格会造成错误。

Uri.EscapeUriString(解码:没找到对应的):会对中文、空格等进行转义。

例如:

Uri.EscapeUriString(“https://www.?a=中国&123 -_.!~*'();/?:@&=+$,#”)

输出:

https://www.?a=%E4%B8%AD%E5%9B%BD&123%20%20%20-_.!~*'();/?:@&=+$,#

可见其不会对网址进行编码。

Uri.EscapeDataString(解码: Uri.UnescapeDataString):不仅对参数,还会对网址进行编码。

例如:

Uri.EscapeDataString(“https://www.?a=中国&123 -_.!~*'();/?:@&=+$,#”)

输出:http%3A%2F%2Fwww.%3Fa%3D%E4%B8%AD%E5%9B%BD%26123%20%20%20-_.%21~%2A%2
7%28%29%3B%2F%3F%3A%40%26%3D%2B%24%2C%23

所以,总结:

不需要编码://可用:JavaScript中用encodeURI,否则用encodeURIComponent,C#中用Uri.EscapeUriString否则用Uri.EscapeDataString


# JavaScript  # C#  # URL编码  # encodeURI、decodeURI  # encodeURIComponent  # decodeURIComponent  # asp.net URL编码与解码  # JS前端知识点 运算符优先级  # URL编码与解码  # String  # Math  # arguments操作整理总结  # javascript URL编码和解码使用说明  # 详谈js对url进行编码和解码(三种方式的区别)  # Javascript下的urlencode编码解码方法附decodeURIComponent  # JS对URL字符串进行编码/解码分析  # .Net结合JS实现URL编码与解码  # 会对  # 中国  # 则用  # 有个  # 有很多  # 不需要  # 就不  # 推荐使用  # 这两个  # 要知道  # 当我们  # 会把  # 都用  # 没有找到  # 但其  # 四位  # 时才  # 时应  # 两位数  # 见其 


相关文章: 整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  网站制作公司排行榜,抖音怎样做个人官方网站  c# 在高并发场景下,委托和接口调用的性能对比  如何彻底删除建站之星生成的Banner?  如何快速完成中国万网建站详细流程?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  javascript中的try catch异常捕获机制用法分析  C#如何序列化对象为XML XmlSerializer用法  南京网站制作费用,南京远驱官方网站?  如何在Windows环境下新建FTP站点并设置权限?  建站主机服务器选型指南与性能优化方案解析  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  广平建站公司哪家专业可靠?如何选择?  详解jQuery停止动画——stop()方法的使用  ui设计制作网站有哪些,手机UI设计网址吗?  如何登录建站主机?访问步骤全解析  如何在阿里云香港服务器快速搭建网站?  网站按钮制作软件,如何实现网页中按钮的自动点击?  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  如何正确下载安装西数主机建站助手?  已有域名和空间如何快速搭建网站?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  高端企业智能建站程序:SEO优化与响应式模板定制开发  建站之星好吗?新手能否轻松上手建站?  如何通过虚拟主机快速搭建个人网站?  建站之星2.7模板:企业网站建设与h5定制设计专题  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  如何通过宝塔面板实现本地网站访问?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  如何快速上传自定义模板至建站之星?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  建站主机功能解析:服务器选择与快速搭建指南  如何基于云服务器快速搭建网站及云盘系统?  如何在阿里云域名上完成建站全流程?  如何用y主机助手快速搭建网站?  行程制作网站有哪些,第三方机票电子行程单怎么开?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  建站之星备案是否影响网站上线时间?  制作表格网站有哪些,线上表格怎么弄?  建站之星安装后如何配置SEO及设计样式?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  建站之星IIS配置教程:代码生成技巧与站点搭建指南  如何在阿里云服务器自主搭建网站?  官网网站制作腾讯审核要多久,联想路由器newifi官网  宝塔建站后网页无法访问如何解决?  湖北网站制作公司有哪些,湖北清能集团官网?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  广东专业制作网站有哪些,广东省能源集团有限公司官网? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。