日期:2014-05-16 浏览次数:20545 次
将url2次转码encodeURI(encodeURI(url)); 到后台用 URLDecoder.decode(url, "UTF-8"); 进行转码就可以得到传过来 的值了
------解决方案--------------------
JavaScript中escape函数是对 String 对象编码以便它们能在所有计算机上可读,使用方法:
escape(charString)
charstring是必选项,参数是要编码的任意 String 对象或文字。
escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。字符值大于 255 的以 %uxxxx 格式存储。
注意 escape 方法不能够用来对统一资源标示码 (URI) 进行编码。对其编码应使用 encodeURI 和encodeURIComponent 方法。
<script language="javascript" type="text/javascript">
function UrlEncode(str){
var ret="";
var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
for(var i=0;i<str.length;i++){
var chr = str.charAt(i);
var c=str2asc(chr);
if(parseInt("0x"+c) > 0x7f){
ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
}else{
if(chr==" ")
ret+="+";
else if(strSpecial.indexOf(chr)!=-1)
ret+="%"+c.toString(16);
else
ret+=chr;
}
}
return ret;
}
</script>
------解决方案--------------------
用post