JavaScript与PHP url编码转换(转)

原文地址:http://blog.csdn.net/wmsjlihuan/article/details/11779067

 

1.JS端 encodeURI('我是啊') 得出的编码,拿到PHP端用 urldecode() 解码,可以得到中文 '我是啊';

2.PHP端用urlencode('我是啊') 得出的编码,拿到JS端用 decodeURI() 解码,会报错URIError: URI malformed,得不到中文 '我是啊'

是不是JS的解码能力不够强,这个暂时我我还搞不清楚

在网上查了查,大家都有这个问题,还找到了解决办法,就是自己重写写一个JS解码的函数,前提必须将PHP端编码的中文转为UTF8编码

下面是JS的解码函数

    function URLdecode(str) {  
            var ret = "";  
            for(var i=0;i<str.length;i++) {  
                    var chr = str.charAt(i);  
                    if(chr == "+") {  
                            ret += " ";  
                    }else if(chr=="%") {  
                            var asc = str.substring(i+1,i+3);  
                            if(parseInt("0x"+asc)>0x7f) {  
                                    ret += decodeURI("%"+ str.substring(i+1,i+9));  
                                    i += 8;  
                            }else {  
                                    ret += String.fromCharCode(parseInt("0x"+asc));  
                                    i += 2;  
                            }  
                    }else {  
                            ret += chr;  
                    }  
            }  
            return ret;  
    }  

 

posted @ 2017-03-02 14:35  shenxinpeter  阅读(4187)  评论(0编辑  收藏  举报