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

5年以前  |  阅读数:749 次  |  编程语言:PHP 

实例如下:


    //将内容进行UNICODE编码
    function unicode_encode($name)
    {
      $name = iconv('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 '<h3>'.$unicode_name.'</h3>';
    // 将UNICODE编码后的内容进行解码
    function unicode_decode($name)
    {
      // 转换编码,将Unicode编码转换成可以浏览的utf-8编码
      $pattern = '/([\w]+)|(\\\u([\w]{4}))/i';
      preg_match_all($pattern, $name, $matches);
      if (!empty($matches))
      {
        $name = '';
        for ($j = 0; $j < count($matches[0]); $j++)
        {
          $str = $matches[0][$j];
          if (strpos($str, '\\u') === 0)
          {
            $code = base_convert(substr($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);

以上这篇PHP中对汉字进行unicode编码和解码的实现方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8