对编码的url进行解码/解决取到的地址栏中的中文乱码问/中文乱码转码

在遇到地址栏中带有中文的参数的时候,我们在取到这个中文时有时会出现一堆乱码,这不是我们希望的,我们希望取到的是这个不乱码的中文,也就是经过了解码的中文汉字.。

这里要说一下解码是有两种方式:decodeURI ( ) 和 decodeURIComponent ( ).

与之相对应有两种编码的方式:encodeURI ( ) 和 encodeURIComponent ( )

encodeURI 和 decodeURI 函数操作的是完整的 URI;它们假定 URI 中的任何保留字符都有特殊意义,所有不会编码它们,从下面的demo中也可以看出只编码(解码)了后半部分;

encodeURIComponent 和 decodeURIComponent 函数操作的是组成 URI 的个别组件;它们假定任何保留字符都代表普通文本,所以必须编码它们,从下面的demo中也可以看出url的整体进行了编码(解码)。

这是一个小demo

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		
	</body>
	<script type="text/javascript">
		var exurl = "https://mp.csdn.net/汉字?ex&中文";
//		对exurl进行编码(转义)
		var zm_1 = encodeURI(exurl);
		var zm_2 = encodeURIComponent(exurl);
		console.log("编码如下")
		console.log(zm_1);
		console.log(zm_2);
		
//		对编码之后的exurl进行解码(反转义)
		var jm_1 = decodeURI(zm_1);
		var jm_2 = decodeURIComponent(zm_2);
		console.log("对应的解码如下");
		console.log(jm_1);
		console.log(jm_2);
	</script>
</html>

运行之后的结果如下:

猜你喜欢

转载自blog.csdn.net/weixin_41863239/article/details/82083734