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