JavaScript URL encoding方法
JavaScript支持以下三种URL encoding方法:
-
escape;
-
encodeURI;
-
encodeURIComponent.
下面阐述一下这三者间的不同:
?????escape不会改变数字,拉丁字符以及+ - * / . _ @等,所有其他字符都会被转义为%XX形式,XX是原字符的ASCII码。
? ? ?对于Unicode字符,escape处理逻辑更为复杂。如果输入是Unicode字符串,那么非ASCII的Unicode字符将会被转移为Unicode字符序列%uXXXX。例如,大写西里尔字符A,escape会转为%u0410。escape对应的解码函数是unescape。
? ? ?
? ? ?encodeURI和encodeURIComponent
? ? ?在escape之外,当今流行的浏览器还支持另外两个URL编码的函数:encodeURI和encodeURIComponent。他们与escape相似,但他们会保持某些escape会转义的字符(譬如. ~ ( )等)不变;encodeURIComponent会将一些字符入(+ - @)进行转义,而其在escape中保持不变。与escape不同的是,对于Unicode输入,encodeURI和encodeURIComponent不会生成%uXXXX的格式,相反,它们会生成%XX%XX或%XX%XX%XX。例如,encodeURI和encodeURIComponent会将大写西里尔字符A转移为%D0%90,欧元符号(€)转为%E2%82%AC。要对encodeURI和encodeURIComponent编码的字符进行解码,分别调用decodeURI和decodeURIComponent即可。
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。