Maison > développement back-end > tutoriel php > utf8_to_unicode in PHP

utf8_to_unicode in PHP

WBOY
Libérer: 2016-06-23 14:36:30
original
973 Les gens l'ont consulté

想使用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 ;
}

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal