VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • PHP中对汉字进行unicode编码和解码的实现方法

  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); 
  50.  

出处:http://www.phpfensi.com/php/20180731/10976.html


相关教程