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;  
    }  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM