日期:2014-05-16  浏览次数:20668 次

url 编码 解码问题(急)
ajax url 传中文 全部是utf-8
我在我机子上 js时 encodeuri 编了两次后
后台 decode 就可以了

现在我换了台机子 就变问号了 一个字一个问号
上传到空间也是问号

后台我 在request.getparameter 时 sysout输出 是%XX 是对的
解码后 输出 就是问号了 (原来是对的啊)

郁闷...
怎么试都没出来(例如 只编一次 等等)


------解决方案--------------------
编码问题原因很多种的。

看下你的web服务器设置,数据库设置,和提交表单时的编码设置……
------解决方案--------------------
function unescapeAction($str) { //反解js页面提交过来的汉字escape编码

$ret = '';
$len = strlen($str);

for ($i = 0; $i < $len; $i++) {

if ($str[$i] == '%' && $str[$i+1] == 'u') {

$val = hexdec(substr($str, $i+2, 4));

if ($val < 0x7f){

$ret .= chr($val);
}else if($val < 0x800){

$ret .= chr(0xc0|($val>>6)).chr(0x80|($val&0x3f));
}else{

$ret .= chr(0xe0|($val>>12)).chr(0x80|(($val>>6)&0x3f)).chr(0x80|($val&0x3f)); $i += 5;
}
} else if ($str[$i] == '%') {

$ret .= urldecode(substr($str, $i, 3)); $i += 2;
} else{

$ret .= $str[$i];
}
}
return $ret;
}