怎样用jquery编码和解码url
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用jquery编码和解码url相关的知识,希望对你有一定的参考价值。
可以使用encodeURI() 函数可把字符串作为 URI 进行编码。
工具原料:编辑器、浏览器
1、使用encodeURL()方法可以对字符串或URL进行URL编码,也可以decodeURL()方法进行解码,简单的代码如下:
<body>
<script type="text/javascript">
document.write(encodeURI("https://www.baidu.com//My first/")+ "<br />")
document.write(decodeURI("http://www.w3school.com.cn/My%20first/")+ "<br />")
document.write(encodeURI(",/?:@&=+$#"))
</script>
</body>
</html>
2、运行的结果如下图:
//escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。比如"春节"的返回结果是%u6625%u8282,escape()不对"+"编码 主要用于汉字编码。
alert(escape("春节"));
alert(unescape(escape("春节")));
//encodeURI()是用来对URL编码的函数。 编码整个url地址,但对特殊含义的符号"; / ? : @ & = + $ , #"不进行编码。对应的解码函数是:decodeURI()。
alert(encodeURI('http://baidu.com?hello=您好&word=文档'));
alert(decodeURI(encodeURI('http://baidu.com?hello=您好&word=文档')));
//encodeURIComponent() 能编码"; / ? : @ & = + $ , #"这些特殊字符。对应的解码函数是decodeURIComponent()。
alert(encodeURIComponent('http://baidu.com?hello=您好&word=文档'));
alert(decodeURIComponent(encodeURIComponent('http://baidu.com?hello=您好&word=文档')));
</script> 参考技术B
在jQuery中,我们可以使用以下方法实现URL的编码和解码:
encodeURIComponent(url) and decodeURIComponent(url)
怎样编码:
Url编码通常也被称为百分号编码(percent-encoding),是因为它的编码方式非常简单,使用%百分号加上两位的字符——0123456789ABCDEF——代表一个字节的十六进制形式对于ASCII字符,字母a 在ASCII码中对应的字节是0x61,那么Url编码之后得到的就是%61,字母abc, url编码后得到的就是%61%62%63对于非ASCII字符,RFC文档建议使用utf-8对其进行编码得到相应的字节,然后对每个字节执行百分号编码。如"中文"使用UTF-8字符集得到的字节为0xE4 0xB8 0xAD 0xE6 0x96 0x87,经过Url编码之后得到"%E4%B8%AD%E6%96%87"。 使用Javascript先对URL编码,然后再向服务器提交,不要给浏览器插手的机会 这样就能保证客户端只用一种编码方法向服务器发出请求
url传值含有特殊符号会被转义,怎样保证所有特殊符号都被编码?
url传值含有特殊符号会被转义,对符号进行编码,但是只能针对部分符号,怎么才能让所有符号都能正常传递呢?
参考技术A 请使用encodeURIComponent方法进行转义追问就是使用了这个方法,但是他对双引号、单引号和&都不管用,我说的是所有符号。。。。
追答&符号等算是url中的特殊符号,是用来进行参数传递区分的,建议你先对这些特殊符号进行编码后再进行解码,我一般用rest方式,这些都很easy
追问关键是没有一种编码方式是针对所有特殊符号的吧,rest不懂。。。
追答js只提供了这个两个函数,你可以看看base64编码
以上是关于怎样用jquery编码和解码url的主要内容,如果未能解决你的问题,请参考以下文章
url传值含有特殊符号会被转义,怎样保证所有特殊符号都被编码?
encodeURI , encodeURIComponent , decodeURL , decodeURIComponent 转码与解码