URL转码

我们在web开发的过程中,有时参数是中文的,或者是一些比较特殊的符合如~!@@#¥#¥%%…………&**(等,这些请求在链接里面如果通过get方式还是可以传送的,post就不行了。需要转码。

转码可以使用jq里面的几个方法。

1.escape()

这个方法除了字母,数字,和特定的符号不转,其他都转。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
</head>
<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
<body  bgcolor="azure"> 
    
</body>
</html>
<script type="text/javascript">
    var i=escape("http://www.w3cSchool.cn");
    console.log(i);//test.html:14 http%3A//www.w3cSchool.cn
    var j=escape(".@!#$%^&*()_+=-?';.,][\~`{}<>?")  
    //.@%21%23%24%25%5E%26*%28%29_+%3D-%3F%27%3B.%2C%5D%5B%7E%60%7B%7D%3C%3E%3F
    console.log(j)
</script>

2.encodeURI()

除了合法字符都不会被编码转换,其他都转,合法的如下:- _ . ! ~ * ' ( )

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
</head>
<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
<body  bgcolor="azure"> 
    
</body>
</html>
<script type="text/javascript">
    var i=encodeURI("http://www.w3cSchool.cn");
    console.log(i);//http://www.w3cSchool.cn
    var j=encodeURI(".@!#$%^&*()_+=-?';.,][\~`{}<>?")  
    //.@!#$%25%5E&*()_+=-?';.,%5D%5B~%60%7B%7D%3C%3E?
    console.log(j)
</script>

3.encodeURIComponent()特殊符号转,中文也转,最常用。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
</head>
<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
<body  bgcolor="azure"> 
    
</body>
</html>
<script type="text/javascript">
    var i=encodeURIComponent("http://www.w3cSchool.cn哈啊哈");
    console.log(i);//http%3A%2F%2Fwww.w3cSchool.cn%E5%93%88%E5%95%8A%E5%93%88
    var j=encodeURIComponent(".@!#$%^&*()_+=-?';.,][\~`{}<>?")  
    //.%40!%23%24%25%5E%26*()_%2B%3D-%3F'%3B.%2C%5D%5B~%60%7B%7D%3C%3E%3F
    console.log(j)
</script>
posted @ 2017-09-11 16:55  永恒之蓝  阅读(821)  评论(0编辑  收藏  举报