javascript之url转义escape()、encodeURI()和encodeURIComponent()

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。
这三个编码函数对 ASCII 字母和数字都不编码,但是对符号的编码有所不同。

<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
<title></title>
</head>
<body>
	<div id='container'>
	</div>
	
</body>
<script src="jquery.js"></script>
<script src="jquery.tmpl.js"></script>
<script type="text/x-jquery-tmpl" id="tmpl">
	<div id='url'>url--------------------:${url}</div>
	<div id='url1'>escape----------------:${url1}</div>
	<div id='url2'>encodeURI-------------:${url2}</div>
	<div id='url3'>encodeURIComponent----:${url3}</div>
</script>
<script type="text/javascript">
var url = 'url +/?%#&=';
var url1=escape(url);
var url2=encodeURI(url);
var url3=encodeURIComponent(url);
var params = {
	url:url,
	url1:url1,
	url2:url2,
	url3:url3
};
var tmpl = $('#tmpl').tmpl(params);
$('#container').append(tmpl);
</script>
</html>

输出:

url--------------------:url +/?%#&=
escape----------------:url%20+/%3F%25%23%26%3D
encodeURI-------------:url%20+/?%25#&=
encodeURIComponent----:url%20%2B%2F%3F%25%23%26%3D

所以我们使用encodeURIComponent对url编码

原文地址:https://www.cnblogs.com/seven7seven/p/4744865.html