zoukankan      html  css  js  c++  java
  • 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);
    }

    参考文章:http://randomchaos.com/documents/?source=php_and_unicode

  • 相关阅读:
    crontab
    待重写
    待重写
    多套开发资源使用情况
    待重写
    待重写
    待重写
    docker安装es
    docker run启动时目录映射研究
    rabbitmq第二篇:使用插件实现延迟功能
  • 原文地址:https://www.cnblogs.com/lurenjiashuo/p/php-utf8-to-unicode.html
Copyright © 2011-2022 走看看