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函数的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did30691