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编码与解码
# 会对
# 中国
# 则用
# 有个
# 有很多
# 不需要
# 就不
# 推荐使用
# 这两个
# 要知道
# 当我们
# 会把
# 都用
# 没有找到
# 但其
# 四位
# 时才
# 时应
# 两位数
# 见其
相关文章:
怎么将XML数据可视化 D3.js加载XML
如何选择适配移动端的WAP自助建站平台?
广德云建站网站建设方案与建站流程优化指南
如何安全更换建站之星模板并保留数据?
详解jQuery中基本的动画方法
如何在阿里云服务器自主搭建网站?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
成都网站制作报价公司,成都工业用气开户费用?
官网网站制作腾讯审核要多久,联想路由器newifi官网
建站之星后台密码遗忘或太弱?如何重置与强化?
如何选择PHP开源工具快速搭建网站?
C#如何使用XPathNavigator高效查询XML
建站之星logo尺寸如何设置最合适?
魔方云NAT建站如何实现端口转发?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
如何快速配置高效服务器建站软件?
如何快速生成ASP一键建站模板并优化安全性?
如何在宝塔面板创建新站点?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
外贸公司网站制作哪家好,maersk船公司官网?
南京网站制作费用,南京远驱官方网站?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
内部网站制作流程,如何建立公司内部网站?
如何快速查询网址的建站时间与历史轨迹?
如何用狗爹虚拟主机快速搭建网站?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
如何在IIS7中新建站点?详细步骤解析
建站主机与虚拟主机有何区别?如何选择最优方案?
安云自助建站系统如何快速提升SEO排名?
建站之星下载版如何获取与安装?
建站之星如何配置系统实现高效建站?
如何在香港服务器上快速搭建免备案网站?
网站制作公司,橙子建站是合法的吗?
网站专业制作公司有哪些,做一个公司网站要多少钱?
北京专业网站制作设计师招聘,北京白云观官方网站?
jQuery 常见小例汇总
个人网站制作流程图片大全,个人网站如何注销?
盘锦网站制作公司,盘锦大洼有多少5G网站?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
建站之星如何修改网站生成路径?
如何用景安虚拟主机手机版绑定域名建站?
如何快速搭建安全的FTP站点?
测试制作网站有哪些,测试性取向的权威测试或者网站?
建站之星代理如何优化在线客服效率?
建站org新手必看:2024最新搭建流程与模板选择技巧
建站之星如何实现PC+手机+微信网站五合一建站?
如何通过宝塔面板实现本地网站访问?
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
图册素材网站设计制作软件,图册的导出方式有几种?
*请认真填写需求信息,我们会在24小时内与您取得联系。