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

 2025-01-15  阅读 254  评论 8  点赞 321

摘要:实例如下: //将内容进行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) { // 两个字节的文

实例如下:

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

//将内容进行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编码和解码的实现方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。


标签:phpphp教程

评论列表:

  •   weihang666
     发布于 3天前回复该评论
  • 写的很不错,学到了!
  •   weihang666
     发布于 3天前回复该评论
  • 又学到了新知识!
  •   haliluya
     发布于 2天前回复该评论
  • 写的很不错,学到了!
显示更多评论

发表评论:

管理员

承接各种程序开发,外贸网站代运营,外贸网站建设等项目
  • 内容2460
  • 积分67666
  • 金币86666

Copyright © 2024 LS'Blog-保定PHP程序员老宋个人博客 Inc. 保留所有权利。 Powered by LS'blog 3.0.3

页面耗时0.0312秒, 内存占用1.98 MB, 访问数据库45次

冀ICP备19034377号