首页 >后端开发 >php教程 >utf8_to_unicode in PHP

utf8_to_unicode in PHP

WBOY
WBOY原创
2016-06-23 14:36:30979浏览

想使用8:UCS2格式编码下行短信的时候,需要把UTF8转换成Unicode的十六进制编码,但是PHP没有内置Unicode的支持,怎么办呢?

/* *
 * 从UTF8转换成unicode beta1.0
 * @param mixed $string要转换的字符串,
 * @return unicode的十六进制编码
*/
function  utf8_to_unicode_hex( $string ){
     $length   =   strlen ( $string );
     $outstring   =   "" ;
     for  (  $i   =   0 ;  $i            $asc_value   =   ord ( $string [ $i ]);
         if ( $asc_value   >   127 ) {
             if ( $asc_value   >=   192   &&   $asc_value                    $str_dec   =  ( ord ( $string [ $i ])  &   0x3f )                   $i ++ ;
                 $str_dec   +=   ord ( $string [ $i ])  &   0x3f ;
                 $str_hex   =   dechex ( $str_dec );
                 $outstring   .=   str_pad ( $str_hex , 4 , " 0 " , STR_PAD_LEFT);
            } elseif ( $asc_value   >=   224   &&   $asc_value                    $str_dec   =  ( ord ( $string [ $i ])  &   0x1f )                   $i ++ ;
                 $str_dec   +=  ( ord ( $string [ $i ])  &   0x3f )                   $i ++ ;
                 $str_dec   +=   ord ( $string [ $i ])  &   0x3f ;
                 $outstring   .= dechex ( $str_dec );
            } elseif ( $asc_value   >=   240   &&   $asc_value                    $str_dec   =  ( ord ( $string [ $i ])  &   0x0f )                   $i ++ ;
                 $str_dec   +=  ( ord ( $string [ $i ])  &   0x3f )                   $i ++ ;
                 $str_dec   +=  ( ord ( $string [ $i ])  &   0x3f )                   $i ++ ;
                 $str_dec   +=   ord ( $string [ $i ])  &   0x3f ;
                 $outstring   .=   dechex ( $str_dec );
            } else {
                 $str_hex   =   dechex ( ord ( $string [ $i ]));
                 $outstring   .=   str_pad ( $str_hex , 4 , " 0 " , STR_PAD_LEFT);
            }
        } else {
             $str_hex   =   dechex ( ord ( $string [ $i ]));
             $outstring   .=   str_pad ( $str_hex , 4 , " 0 " , STR_PAD_LEFT);
        }
    }
     return   $outstring ;
}

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:PHP xml to csv下一篇:PHP Get Current URL