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