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

5年以前  |  阅读数:748 次  |  编程语言: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编码和解码的实现方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例