RT初学,翻了好多资料没找到,用什么函数?

解决方案 »

  1.   

    function unescape($str) { 
    $str = rawurldecode($str); 
    preg_match_all("/(?:%u.{4})|.+/",$str,$r); 
    $ar = $r[0]; 
    foreach($ar as $k=>$v) { 
    if(substr($v,0,2) == "%u" && strlen($v) == 6) 
    $ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4))); 

    return join("",$ar); 
    }
      

  2.   

    弄错了 是这个
    function escape($str) { 
    preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r); 
    $ar = $r[0]; 
    foreach($ar as $k=>$v) { 
    if(ord($v[0]) < 128) 
    $ar[$k] = rawurlencode($v); 
    else 
    $ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v)); 

    return join("",$ar); 
      

  3.   

    不对。输入“刘德华”出来的是 %u%u%uc975%u  而不是 %C1%F5%B5%C2%BB%AA
      

  4.   

    如果数据是GBK的,就直接用urlencode,如果不是,先iconv转再urlencode.
    $a = '刘德华';
    //$a = iconv("utf-8","GBK",$a);//这个表示utf-8编码转gbk编码
    echo urlencode($a);