当前位置:首页 > PHP教程 > php函数 > 列表

PHP中对汉字进行unicode编码和解码的实现方法

发布:smiling 来源: PHP粉丝网  添加日期:2018-07-31 11:43:21 浏览: 评论:0 
  1. //将内容进行UNICODE编码 
  2. functionunicode_encode($name
  3.   $name= <a href="/tags.php/iconv/" target="_blank">iconv</a>('UTF-8','UCS-2',$name); 
  4.   $len=strlen($name); 
  5.   $str='' 
  6.   for($i= 0;$i<$len- 1;$i=$i+ 2) 
  7.   { 
  8.     $c=$name[$i]; 
  9.     $c2=$name[$i+ 1]; 
  10.     if(ord($c) > 0) 
  11.     { // 两个字节的文字 
  12.       $str.='\u'.base_convert(ord($c), 10, 16).base_convert(ord($c2), 10, 16); 
  13.     } 
  14.     else 
  15.     { 
  16.       $str.=$c2
  17.     } 
  18.   } 
  19.   return$str
  20. $name='MY,你大爷的' 
  21. $unicode_name=unicode_encode($name); 
  22. echo
  23. // 将UNICODE编码后的内容进行解码 
  24. functionunicode_decode($name
  25.   // 转换编码,将Unicode编码转换成可以浏览的utf-8编码 
  26.   $pattern='/([\w]+)|(\\\u([\w]{4}))/i' 
  27.   <a href="/tags.php/preg_match/" target="_blank">preg_match</a>_all($pattern,$name,$matches); 
  28.   if(!emptyempty($matches)) 
  29.   { 
  30.     $name='' 
  31.     for($j= 0;$j<count($matches[0]);$j++) 
  32.     { 
  33.       $str=$matches[0][$j]; 
  34.       if(strpos($str,'\\u') === 0) 
  35.       { 
  36.         $code=base_convert(<a href="/tags.php/substr/" target="_blank">substr</a>($str, 2, 2), 16, 10); 
  37.         $code2=base_convert(substr($str, 4), 16, 10); 
  38.         $c=chr($code).chr($code2); 
  39.         $c= iconv('UCS-2','UTF-8',$c); 
  40.         $name.=$c
  41.       } 
  42.       else 
  43.       { 
  44.         $name.=$str
  45.       } 
  46.     } 
  47.   } 
  48.   return$name
  49. echo'MY,\u4f60\u5927\u7237\u7684 -> '.unicode_decode($unicode_name); 

Tags: 汉字 编码 方法

分享到: