编码和解码
JS全局对象中编码和解码的函数:encodeURI()
decodeURI()
encodeURIComponent()
decodeURIComponent()
URI:Uniform Resource Identifier 统一资源标识符
复制代码
有效的URI
中不包含空格
、%
等特殊符号,所以需要URI编码方法
用UTF-8编码
替换这些字符,让浏览器接受和理解。
区别:
encodeURI()
不会对本身属于URI的特殊字符进行编码,例如: /
:
?
#``@
&
=
+
$
,
;
encodeURIComponent()
会对它发现的任何非标准字符(非字母数字字符)进行编码
encodeURI()
对应的解码函数是decodeURI()
encodeURIComponent()
对应的解码函数是decodeURIComponent()
<script type="text/javascript">
var test = "http://www.w3school.com.cn/My first/"
var encodeText = encodeURI(test)
var decodeText = decodeURI(encodeText)
var enComText = encodeURIComponent(test)
var deComText = decodeURIComponent(enComText)
var deText = decodeURI(enComText)
var decodeComText = decodeURIComponent(encodeText)
</script>
复制代码
encodeURIComponent()
相比encodeURI()
编码得更加彻底
大多使用encodeURIComponent()
编码,用 decodeURIComponent()
解码
汉字字符串的编码和解码
encodeURI('狗子') => "%E7%8B%97%E5%AD%90"
decodeURI('%E7%8B%97%E5%AD%90') => "狗子"
encodeURIComponent('狗子') => "%E7%8B%97%E5%AD%90"
decodeURIComponent('%E7%8B%97%E5%AD%90') => "狗子"
复制代码