php实现utf-8转unicode函数分享
程序员文章站
2022-05-29 10:51:11
代码很简单,功能却很实用,推荐给大家。
奉上代码先:
复制代码 代码如下:
public function utf8_unicode($str) {
&...
代码很简单,功能却很实用,推荐给大家。
奉上代码先:
复制代码 代码如下:
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);
}