频道栏目
首页 > 资讯 > 函数 > 正文

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

16-01-07        来源:[db:作者]  
收藏   我要投稿

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

GB2312编码:

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

UTF8编码:

  1. function unescape($str){   $ret = '';  
  2. $len = strlen($str);   for ($i = 0; $i < $len; $i++){  
  3. if ($str[$i] == '%' && $str[$i+1] == 'u'){   $val = hexdec(substr($str, $i+2, 4));  
  4. if ($val < 0x7f) $ret .= chr($val);   else if($val < 0x800) $ret .= chr(0xc0|($val>>6)).chr(0x80|($val&0x3f));  
  5. else $ret .= chr(0xe0|($val>>12)).chr(0x80|(($val>>6)&0x3f)).chr(0x80|($val&0x3f));   $i += 5;  
  6. }   else if ($str[$i] == '%'){  
  7. $ret .= urldecode(substr($str, $i, 3));   $i += 2;  
  8. }   else $ret .= $str[$i];  
  9. }   return $ret;  
相关TAG标签
上一篇:php四舍五入函数
下一篇:PHP提交表单后如何控制缓存
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站