php实现utf-8转unicode函数分享
这篇文章主要介绍了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);
- }