原文地址: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; }