您正在使用IPV4(44.192.247.184)访问本站 您本次共访问本站 1 次
 用户名: 密 码: 验证码:     用QQ登录本站
首页 软件 编程 笑话 知识 公告 台风 日历 计算器
悟空收录网       [公益]文明驾车我带头,文明行路我带头,礼貌让座我带头      

【腾讯云】云服务器等爆品抢先购,低至4.2元/月      
[公益] 节省一分零钱 献出一份爱心 温暖世间真情      
2023年 元宵节 4
2023年 情人节 13
2024年 元 旦 334
2024年 春 节 374
 
您现在的位置:首页 >> 脚本程序 >> 内容
本类新增
本类热门文章
js 对url进行编码和解码
内容摘要: 三种编码和解码函数encodeURI和decodeURI它着眼于对整个URL进行编码,因此除了常见的符号以外,对其他一些在网址中有特殊含义的符号';/?:@=+$,#',也不进行编码。编码后,它输出符号的utf-8形式,并且在每个字节前加上%。需要注意的是,它不对单引号’编码。encodeURIComponent和decodeURIComponent(推荐使......
三种编码和解码函数

encodeURI和decodeURI

它着眼于对整个URL进行编码,因此除了常见的符号以外,对其他一些在网址中有特殊含义的符号";/?:@&=+$,#",也不进行编码。编码后,它输出符号的utf-8形式,并且在每个字节前加上%。

需要注意的是,它不对单引号’编码。

encodeURIComponent和decodeURIComponent(推荐使用)

它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。

因此,";/?:@&=+$,#",这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码

escape和unescape

对除ASCII字母、数字、标点符号@*_+-./以外的其他字符进行编码。

jsurl二次编码和解码

问题

今天遇到了一个奇怪的问题:在JS中用decodeURI()解析完一串URL编码后发现它依旧是URL编码,看的我一脸懵逼!最后发现参数里面竟然是一个URL二次编码!

类似下面这种形式:

"%25E6%2588%2591%25E7%2588%25B1%25E4%25BD%25A0"

也就是说也解码两次才能得到原码,如下:

//编码结果:%25E6%2588%2591%25E7%2588%25B1%25E4%25BD%25A0

encodeURI(encodeURI('我爱你'))

//解码结果:我爱你

decodeURI(decodeURI("%25E6%2588%2591%25E7%2588%25B1%25E4%25BD%25A0"))

URL编码解码原理

URL编码原理:

这个百度百科上解释的就很好:URL编码就是一个字符ASCII码的十六进制。不过稍微有些变动,需要在前面加上“%”。比如:“\”,它的ASCII码是92,92的十六进制是5c,所以“\”的URL编码就是%5c。

URL二次编码会对生成的编码再做一次编码,还拿“\”为例,一次编码后是“%5c”,再对“%5c”进行编码得到:“%255c”。

二次编码其实就是对%做了编码,后面的字母和数字没变,“%”的URL编码是“%25”,所以二次编码全都是已%25开头的。

注意:encodeURI()仅会将特殊字符转化成URL编码形式,特殊的字符:就是那些不是简单的七位ASCII,如汉字,中文标点,当然也包括%[]{}|等特殊字符。例如:

//结果:123abcABC

encodeURI("123abcABC")

//结果:"520%E9%9B%AA%E7%8B%90"

encodeURI("520雪狐")

//结果:"%25%7C%5B%5D%7B%7D"

encodeURI("%|[]{}")

URL编码原理:就是编码的逆过程,不再赘述。

注意:decodeURI也仅对URL编码解码,普通字符解码后依旧是普通字符,例如:

//结果:"234"

decodeURI('234')

//结果:我爱你

decodeURI("%E6%88%91%E7%88%B1%E4%BD%A0")

//结果:我爱你

decodeURI("我爱你")

版权声明:本内容来源于网络,如有侵犯您的版权,请联系站长,本站收到您的信息后将及时处理。
上一篇:html文本框提示效果的示例代码 下一篇:Vue导入excel文件的两种方式(fo
发布日期:2022/11/12
手机扫二维码直达本页
发布时间:22:55:29
点  击:18
录  入:齐天大圣
相关文章
Baidu

YiJiaCMS 6.3.5.220928(MSSQL) 闽ICP备05000814号-1
本空间由腾讯云(轻量应用服务器)提供,百度云加速提供加速防护
Copyright©2000-2023