怎样用jquery编码和解码url

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用jquery编码和解码url相关的知识,希望对你有一定的参考价值。

可以使用encodeURI() 函数可把字符串作为 URI 进行编码。

工具原料:编辑器、浏览器

1、使用encodeURL()方法可以对字符串或URL进行URL编码,也可以decodeURL()方法进行解码,简单的代码如下:

<html>
<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、运行的结果如下图:

参考技术A <script type="text/javascript">
//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的主要内容,如果未能解决你的问题,请参考以下文章

怎样用jquery编码和解码url

求助,解释下Java中怎样把网址URL编码转义

我来教你如何将URL进行编码和解码

url传值含有特殊符号会被转义,怎样保证所有特殊符号都被编码?

encodeURI , encodeURIComponent , decodeURL , decodeURIComponent 转码与解码

php里面怎样把utf-8编码的字符串 (如 \u5e7f), 重新解码成中文,多谢