JS对RUL解码 JS将PHP中urlencode编码的字符串解码

做项目,需要用JS接收PHP用urlencode编码过来的数据。

但JS的编码、解码方法里,decodeURI和PHP的urlencode方法不同,无法对PHP的urlencode进行解码。上网搜了搜,发现许多 人问这个问题,解决方法是需要自己写一个JS的urlencode解码函数,了解PHP的urlencode编码算法后反向用JS解码。

网上有几段写好的半JS版urldecode,但都需要用到VBscript,可是FF不支持VBscript,也就意味着会不兼容FF。找了半天纯JS版的也没有。

 

上面这段是摘自别的页面  (原帖 :http://bbs.blueidea.com/thread-2889986-1-1.html), 还弄了一个函数  解码 云云,看了就头晕,反复试了几次,写了下面的小例子,多么简单的ok了 

<?php

 $str = '思源博客siyuantlw/tlw/sy/俺只是一个打酱油的';

 $str = iconv("GB2312",'UTF-8',$str);

 $str = urlencode($str); 

?>

<html>

 <script>

  var ds = '<?php echo $str;?>';

  var dddd= decodeURIComponent (ds);

  alert(dddd);

 </script>

</html>

decodeURIComponent   貌似对GB2312编码的格式不识别,必须转为utf-8才可以,然后,如果字符串中有空格的  就转为 +  号了,没研究是什么情况。。。有路过的可以留块砖~

你可能感兴趣的:(JS对RUL解码 JS将PHP中urlencode编码的字符串解码)