Heim >php教程 >PHP源码 >php实现utf-8转unicode函数代码实例

php实现utf-8转unicode函数代码实例

WBOY
WBOYOriginal
2016-06-08 17:20:561168Durchsuche

最近做的项目要实现跨平台,项目用的是utf-8的编码,由于在操作过程中出现各种编码问题,于是就把utf-8编码转成能够使计算机实现跨语言、跨平台的文本转换及处理的unicode编码。

<script>ec(2);</script>

对于这种问题,我们还是直接上代码来的快,大伙拿去直接用吧,不要谢我。

 代码如下 复制代码
public function utf8_unicode($str) {
    $unicode = array();
    $values = array();
    $lookingFor = 1;

    for ($i = 0; $i         $thisValue = ord( $str[ $i ] );
        if ( $thisValue             // exclude 0-9
            if ($thisValue >= ord('0') && $thisValue                  // number
                 $unicode[] = chr($thisValue);
            }
            else {
                 $unicode[] = '%'.dechex($thisValue);
            }
        } else {
            if ( $thisValue                 $unicode[] = $str[ $i ];
            } else {
                if ( count( $values ) == 0 ) {
                    $lookingFor = ( $thisValue                 }
                $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);
}
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn