加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘孜站长网 (https://www.0836zz.com.cn/)- 运维、物联设备、数据计算、智能推荐、云管理!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php实现utf-8转unicode函数分享

发布时间:2022-06-15 10:10:49 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了php实现utf-8转unicode函数分享,需要的朋友可以参考下 代码很简单,功能却很实用,推荐给大家。 奉上代码先: public function utf8_unicode($str) { $unicode = array(); $values = array(); $lookingFor = 1; for ($i = 0; $i strlen( $
  这篇文章主要介绍了php实现utf-8转unicode函数分享,需要的朋友可以参考下
 
  代码很简单,功能却很实用,推荐给大家。
 
  奉上代码先:
 
  public function utf8_unicode($str) {
      $unicode = array();
      $values = array();
      $lookingFor = 1;
      for ($i = 0; $i < strlen( $str ); $i++ ) {
          $thisValue = ord( $str[ $i ] );
          if ( $thisValue < ord('A') ) {
              // exclude 0-9
              if ($thisValue >= ord('0') && $thisValue <= ord('9')) {
                   // number
                   $unicode[] = chr($thisValue);
              }
              else {
                   $unicode[] = '%'.dechex($thisValue);
              }
          } else {
              if ( $thisValue < 128) {
                  $unicode[] = $str[ $i ];
              } else {
                  if ( count( $values ) == 0 ) {
                      $lookingFor = ( $thisValue < 224 ) ? 2 : 3;
                  }
                  $values[] = $thisValue;
                  if ( count( $values ) == $lookingFor ) {
                      $number = ( $lookingFor == 3 ) ?
                          ( ( $values[0] % 16 ) * 4096 ) + ( ( $values[1] % 64 ) * 64 ) + ( $values[2] % 64 ):
                          ( ( $values[0] % 32 ) * 64 ) + ( $values[1] % 64 );
                      $number = dechex($number);
                      $unicode[] = (strlen($number)==3)?"u0".$number:"u".$number;
                      $values = array();
                      $lookingFor = 1;
                  } // if
              } // if
          }
      } // for
      return implode("",$unicode);
  }
 

(编辑:甘孜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读