作項目,須要用JS接收PHP用urlencode編碼過來的數據。 php
但JS的編碼、解碼方法裏,decodeURI和PHP的urlencode方法不一樣,沒法對PHP的urlencode進行解碼。上網搜了搜,發現許多 人問這個問題,解決方法是須要本身寫一個JS的urlencode解碼函數,瞭解PHP的urlencode編碼算法後反向用JS解碼。 html
網上有幾段寫好的半JS版urldecode,但都須要用到VBscript,但是FF不支持VBscript,也就意味着會不兼容FF。找了半天純JS版的也沒有。 算法
上面這段是摘自別的頁面 (原帖 :http://bbs.blueidea.com/thread-2889986-1-1.html), 還弄了一個函數 解碼 云云,看了就頭暈,反覆試了幾回,寫了下面的小例子,多麼簡單的ok了 ide
<?php 函數
$str = '思源博客siyuantlw/tlw/sy/俺只是一個打醬油的'; 編碼
$str = iconv("GB2312",'UTF-8',$str); url
$str = urlencode($str); idea
?> code
<html> htm
<script>
var ds = '<?php echo $str;?>';
var dddd= decodeURIComponent (ds);
alert(dddd);
</script>
</html>
decodeURIComponent 貌似對GB2312編碼的格式不識別,必須轉爲utf-8才能夠,而後,若是字符串中有空格的 就轉爲 + 號了,沒研究是什麼狀況。。。有路過的能夠留塊磚~