php 两次encodeURI,解决浏览器跳转请求页乱码报错找不到页面的bug

Not Found

The requested URL /index.php/XXX/mid/97329240798095910/bname/3000T/D/sname/水泥粉磨/uname/1#水泥磨/oname/前滑履油站1.html was not found on this server.

解决思路:

get 提交 参数中 含有中文,  如果是PHP,那前端需要两次 encodeURI,因为一次encodeURI还有一些字符不会被编码

 1  onclick="showRecord(this)" href="{:U('OilAnalysis/monitorRecord',array('mid'=>$vo['oid'],'bname'=>$vo['bname'],'sname'=>$vo['sname'],'uname'=>$vo['uname'],'oname'=>$vo['oname']))}" 
 2 var showRecord=function(e){
 3     var hf=$(e).attr('href');
 4     var url=encodeURI(encodeURI(hf));
 5     // url=hf;
 6     location.href=url;
 7 }
 8 
 9 后台php
10 $data['mid']=urldecode(urldecode(I('mid')));
11 $data['bname']=urldecode(urldecode(I('bname')));

原文地址:https://www.cnblogs.com/xujian2016/p/8949479.html