加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php做成utf-8转unicode函数分享

发布时间:2023-04-20 12:50:27 所属栏目:PHP教程 来源:
导读:这篇文章主要介绍了php实现utf-8转unicode函数分享,需要的朋友可以参考下代码很简单,功能却很实用,推荐给大家。奉上代码先:public function utf8_unicode($str) { $unicode = array(); $values = array()

这篇文章主要介绍了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); 

}

(编辑:银川站长网)

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