utf8_to_unicode in PHP

來源:互聯網
上載者:User
想使用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 < $length ; $i ++ ) {
$asc_value = ord ( $string [ $i ]);
if ( $asc_value > 127 ) {
if ( $asc_value >= 192 && $asc_value <= 223 ){
$str_dec = ( ord ( $string [ $i ]) & 0x3f ) << 6 ;
$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 <= 239 ){
$str_dec = ( ord ( $string [ $i ]) & 0x1f ) << 12 ;
$i ++ ;
$str_dec += ( ord ( $string [ $i ]) & 0x3f ) << 6 ;
$i ++ ;
$str_dec += ord ( $string [ $i ]) & 0x3f ;
$outstring .= dechex ( $str_dec );
} elseif ( $asc_value >= 240 && $asc_value <= 247 ){
$str_dec = ( ord ( $string [ $i ]) & 0x0f ) << 18 ;
$i ++ ;
$str_dec += ( ord ( $string [ $i ]) & 0x3f ) << 12 ;
$i ++ ;
$str_dec += ( ord ( $string [ $i ]) & 0x3f ) << 6 ;
$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 ;
}

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.