js對文字進行編碼涉及3個函數:escape,encodeuri,encodeuricomponent ,相應3個解碼函數:unescape,decodeuri,decodeuricomponent
1、 傳遞參數時需要使用 encodeuricomponent,這樣組合的url才不會被#等特殊字元截斷。
2、 進行url跳轉時可以整體使用 encodeuri
例如:location.href=encodeuri("http://cang.baidu.com/do/s?word=百度& amp;ct=21");
3、 js使用資料時可以使用escape
例如:搜藏中history紀錄。
4、 escape對0-255以外的 unicode值進行編碼時輸出%u****格式,其它情況下 escape,encodeuri,encodeuricomponent編碼結果相同。
最多使用的應為encodeuricomponent,它是将中文、韓文等特殊字元轉換成utf-8格式的 url編碼,是以如果給背景傳遞參數需要使用encodeuricomponent時需要背景解碼對utf-8支 持(form中的編碼方式和目前頁面編碼方式相同)
escape不編碼字元有69個:*,+,-,.,/,@,_,0-9,a-z,a-z
encodeuri不編碼字元有82個:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a- z,a-z
encodeuricomponent不編碼字元有71個:!, ',(,),*,-,.,_,~,0-9,a-z,a-z

<?php
public function urlsafeb64encode($url) {
return strtr(base64_encode($url), '+/=', '-_,');
}
public function urlsafeb64decode($url) {
return base64_decode(strtr($url, '-_,', '+/='));
urlencode,urldecode函數用于對urldecode編碼過的字元串進行解碼,然後傳回。

<script>
alert(unescape('\u5bf9\u4e0d\u8d77,\u60a8\u6ca1\u6709\u6267\u884c\u6b64\u9879\u64cd\u4f5c\u7684\u6743\u9650!'));
</script>