- php教程首页
- php函数
PHP中对汉字进行unicode编码和解码的实现方法
•php函数•阅读 326 - //将内容进行UNICODE编码
- functionunicode_encode($name)
- {
- $name= <a href="/tags.php/iconv/" target="_blank">iconv</a>('UTF-8','UCS-2',$name);
- $len=strlen($name);
- $str=''
- for($i= 0;$i<$len- 1;$i=$i+ 2)
- {
- $c=$name[$i];
- $c2=$name[$i+ 1];
- if(ord($c) > 0)
- { // 两个字节的文字
- $str.='\u'.base_convert(ord($c), 10, 16).base_convert(ord($c2), 10, 16);
- }
- else
- {
- $str.=$c2;
- }
- }
- return$str;
- }
- $name='MY,你大爷的'
- $unicode_name=unicode_encode($name);
- echo'
- '
- // 将UNICODE编码后的内容进行解码
- functionunicode_decode($name)
- {
- // 转换编码,将Unicode编码转换成可以浏览的utf-8编码
- $pattern='/([\w]+)|(\\\u([\w]{4}))/i'
- <a href="/tags.php/preg_match/" target="_blank">preg_match</a>_all($pattern,$name,$matches);
- if(!emptyempty($matches))
- {
- $name=''
- for($j= 0;$j<count($matches[0]);$j++)
- {
- $str=$matches[0][$j];
- if(strpos($str,'\\u') === 0)
- {
- $code=base_convert(<a href="/tags.php/substr/" target="_blank">substr</a>($str, 2, 2), 16, 10);
- $code2=base_convert(substr($str, 4), 16, 10);
- $c=chr($code).chr($code2);
- $c= iconv('UCS-2','UTF-8',$c);
- $name.=$c;
- }
- else
- {
- $name.=$str;
- }
- }
- }
- return$name;
- }
- echo'MY,\u4f60\u5927\u7237\u7684 -> '.unicode_decode($unicode_name);