如何获取utf-8字符串中给定字符的代码点编号?

如何获取utf-8字符串中给定字符的代码点编号?,第1张

如何获取utf-8字符串给定字符的代码点编号?

Scott Reynen编写了一个将UTF-8转换为Unipre的函数。我在PHP文档中发现了它。

function utf8_to_unipre( $str ) {    $unipre = 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  $unipre[] = chr($thisValue);        }        else {  $unipre[] = '%'.dechex($thisValue);        }    } else {          if ( $thisValue < 128)         $unipre[] = $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); $unipre[] = (strlen($number)==3)?"%u0".$number:"%u".$number;         $values = array();         $lookingFor = 1;          } // if        } // if    }    } // for    return implode("",$unipre);} // utf8_to_unipre


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5018517.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存