javascript中的編碼函數有三種javascript
escape(string)
encodeURI(string)
encodeURIComponent(string)
相應的解碼函數也有如下三種java
unescape(string)
unencodeURI(string)
unencodeURIComponent(string)
以上三種編碼函數都是將指定的字符串按照各自的方式轉變爲瀏覽器或腳本可識別的形式,常見於對漢字進行操做,避免出現亂碼的狀況瀏覽器
escape(string)
string
轉變爲十六進制的轉義序列,但不會對ASCII字符和數字進行編碼,也不會對如下標點符號進行編碼:-_./
escape('漢字 你123abcABC'); //"%u6C49%u5B57%20%u4F60123abcABC" escape('-_./'); //"-_./" escape('"'); //"%22" escape(":"); //"%3A"
escape(string)
除字母、數字以及一些特殊字符(-_./
)外,都會對其進行編碼,區別在於,漢字和中文標點符號被轉換爲%u
開頭的四位十六進制數(%u6C49
),英文標點符號被轉換爲%
開頭的兩位十六進制(%20
)encodeURI(string)
string
轉變爲十六進制的轉義序列,但不會對ASCII字符和數字進行編碼,也不會對如下符號進行編碼:-_.!~*'/();?:@&=+$,#
encodeURI('漢'); //"%E6%B1%89" encodeURI('漢字 你123abcABC'); //"%E6%B1%89%E5%AD%97%20%E4%BD%A0123abcABC" encodeURI("-_.!~*'/();?:@&=+$,#"); //"-_.!~*'/();?:@&=+$,#" encodeURI('"'); //"%22"
encodeURI(string)
除字母、數字以及一些特殊字符(-_.!~*'/();?:@&=+$,#
)外,都會對其進行編碼,區別在於,漢字和中文標點符號被轉換爲三組%
開頭的兩位十六進制數(%E6%B1%89
),英文標點符號被轉換爲%
開頭的兩位十六進制(%20
)encodeURIComponent(string)
string
轉變爲十六進制的轉義序列,但不會對ASCII字符和數字進行編碼,也不會對如下符號進行編碼:-_.!~*'()
encodeURIComponent('漢'); //"%E6%B1%89" encodeURIComponent('漢字 你123abcABC'); //"%E6%B1%89%E5%AD%97%20%E4%BD%A0123abcABC" encodeURIComponent("-_.!~*'()"); //"-_.!~*'()" encodeURIComponent('"'); //"%22"
encodeURIComponent(string)
除字母、數字以及一些特殊字符(-_.!~*'()
)外,都會對其進行編碼,區別在於,漢字和中文標點符號被轉換爲三組%
開頭的兩位十六進制數(%E6%B1%89
),英文標點符號被轉換爲%
開頭的兩位十六進制(%20
)escape(string)
不能用於對url進行編碼,多用於返回字符的Unicode
編碼encodeURI(string)
能夠對整個url進行編碼encodeURIComponent(string)
不能應用於整個url編碼,多用於對地址後的參數值進行編碼