好像是javascript escape方法的问题,·编码后是%b7,而!编码后是%uFF01,所以%b7就识别不了了

解决方案 »

  1.   

    echo rawurlencode('@');//%EF%BC%A0
    echo rawurldecode('%EF%BC%A0');//@echo rawurlencode('@');//%40
    echo rawurldecode('%40');//@
      

  2.   

    谁这么无聊,删我的回复?echo uniDecode('%uFF20');function uniDecode($str){
      return  $text = preg_replace_callback("/%u[0-9A-Za-z]{4}/", 'toUtf8', $str);
    }function toUtf8($ar){
      $c = '';
      foreach($ar as $val){
        $val = intval(substr($val,2),16);
        if($val < 0x7F){ // 0000-007F
          $c .= chr($val);
        }elseif($val < 0x800) { // 0080-0800
          $c .= chr(0xC0 | ($val / 64));
          $c .= chr(0x80 | ($val % 64));
        }else{ // 0800-FFFF
          $c .= chr(0xE0 | (($val / 64) / 64));
          $c .= chr(0x80 | (($val / 64) % 64));
          $c .= chr(0x80 | ($val % 64));
        }
      }
      return $c;
    }@这样不是更好些
    $s = '%uFF20';
    echo json_decode('"' . strtr($s, '%u', '\\u') . '"');