当前位置: 首页 > 后端技术 > PHP

web开发中的URL编码介绍

时间:2023-03-29 17:00:40 PHP

1、为什么是urlencode()?因为当字符串数据以url的形式传递给web服务器时,字符串中不允许有空格和特殊字符。也就是说,在传递url的参数时,需要遵循一定的url规范才能正确传递。通常,如果需要对某些内容进行编码,则意味着某些内容不适合传输。有各种各样的原因。例如,大小太大并且包含私有数据。对于Url,之所以要进行编码,是因为Url中有些字符会造成歧义。编码的原因大多是因为有特殊字符(如@、#、&等)或者参数是中文形式。Url编码的原理是用安全字符(没有特殊用途或特殊含义的可打印字符)来表示那些不安全的字符。2、javascript中编码的函数escape()方法:(1)使用ISO拉丁字符集对指定字符串进行编码。(2)所有空格字符、标点符号、特殊字符等非ASCII字符都会被转换成%xx格式的字符编码(xx等于字符在字符集表中编码后的十六进制数)。(3)例如空格字符对应的编码为%20。(4)不被该方法编码的字符:@*/+encodeURI()方法:(1)使用UTF-8编码格式将URI字符串转换为转义格式的字符串。(2)不会被该方法编码的字符:!@#$&*()=:/;?+'encodeURIComponent()方法:(1)将UTF-8编码格式的URI字符串转换为转义格式字符串。(2)与encodeURI()相比,该方法会编码更多的字符,比如/等字符。(3)因此,如果字符串包含URI的几部分,则不能使用该方法进行编码,否则/字符编码后URL会显示错误。(4)不被该方法编码的字符:!*()'重点:(1)因此,对于中文字符串,如果不想将字符串编码格式转换成UTF-8格式(比如原页面与目标页面的charset一致),只需要使用转义。(2)如果你的页面是GB2312或者其他编码,并且接受参数的页面是UTF-8编码,那么必须使用encodeURI或者encodeURIComponent。(3)另外,javascript1.5之后引入了encodeURI/encodeURIComponent,javascript1.0开始提供了escape。3、php中的编码函数主要是urlencode和urldecode。其他参考:https://www.cnblogs.com/xuey/...4.keyurl的编码是让一些特殊字符和中文进行编码转换成安全字符传输,使其符合url标准。js中的编码函数大多使用encodeURIComponent,因为这个函数的编码范围最大。但是需要根据业务需求选择不同的编码函数。5.参考链接https://www.cnblogs.com/liuho...