Home  >  Article  >  Backend Development  >  js escape escape Chinese php conversion function_PHP tutorial

js escape escape Chinese php conversion function_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 16:55:19892browse

Many times it is necessary to use the escape function of js to convert Chinese characters, but how can the characters converted by js be converted back using php? Below I found two very practical functions.

GB2312 encoding:

preg_match_all("/%u.{4}|.{4};|d+;|.+/U",$str,$r); $ar = $r[0];
The code is as follows
 代码如下 复制代码

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);
}

Copy code


function unescape($str) {
 代码如下 复制代码

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;
}

$str = rawurldecode($str);
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) == "") elseif(substr($v,0,2) == "") { $ar[$k] = iconv("UCS-2","GBK",pack("n",substr($v,2,-1))); } } return join("",$ar); }
UTF8 encoding:
The code is as follows Copy code
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; } http://www.bkjia.com/PHPjc/631689.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/631689.htmlTechArticleMany times it is necessary to use the escape function of js to convert Chinese characters, but how to use php after converting characters with js To convert it back, I found two very practical functions below. GB231...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn