编码和解码
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') => "狗子"