好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

js的escape转义中文php的转换函数 - php函数

js的escape转义中文php的转换函数

很多时候需要用到js的escape函数来转换中文字符,可是用js转换后的字符怎么用php来转换回来呢,下面我就找到了两个很实用的函数。

GB2312编码:

function  unescape( $str ) {   $str  = rawurldecode( $str );   preg_match_all( "/%u.{4}|&#x.{4};|&#d+;|.+/U" , $str , $r );   $ar  =  $r [0];   foreach ( $ar   as   $k => $v ) {   if ( substr ( $v ,0,2) ==  "%u" )   $ar [ $k ] = iconv( "UCS-2" , "GBK" ,pack( "H4" , substr ( $v ,-4)));   elseif ( substr ( $v ,0,3) ==  "&#x" )   $ar [ $k ] = iconv( "UCS-2" , "GBK" ,pack( "H4" , substr ( $v ,3,-1)));   elseif ( substr ( $v ,0,2) ==  "&#" ) {   $ar [ $k ] = iconv( "UCS-2" , "GBK" ,pack( "n" , substr ( $v ,2,-1)));   }   }   return  join( "" , $ar );   } 

UTF8编码:

function  unescape( $str ){   $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 ;   } 

查看更多关于js的escape转义中文php的转换函数 - php函数的详细内容...

  阅读:54次