php实现utf-8转unicode函数分享

这篇文章主要介绍了php实现utf-8转unicode函数分享,需要的朋友可以参考下

代码很简单,功能却很实用,推荐给大家。

奉上代码先:

  1. public function utf8_unicode($str) {
  2. $unicode = array();
  3. $values = array();
  4. $lookingFor = 1;
  5. for ($i = 0; $i < strlen( $str ); $i++ ) {
  6. $thisValue = ord( $str[ $i ] );
  7. if ( $thisValue < ord('A') ) {
  8. // exclude 0-9
  9. if ($thisValue >= ord('0') && $thisValue <= ord('9')) {
  10. // number
  11. $unicode[] = chr($thisValue);
  12. }
  13. else {
  14. $unicode[] = '%'.dechex($thisValue);
  15. }
  16. } else {
  17. if ( $thisValue < 128) {
  18. $unicode[] = $str[ $i ];
  19. } else {
  20. if ( count( $values ) == 0 ) {
  21. $lookingFor = ( $thisValue < 224 ) ? 2 : 3;
  22. }
  23. $values[] = $thisValue;
  24. if ( count( $values ) == $lookingFor ) {
  25. $number = ( $lookingFor == 3 ) ?
  26. ( ( $values[0] % 16 ) * 4096 ) + ( ( $values[1] % 64 ) * 64 ) + ( $values[2] % 64 ):
  27. ( ( $values[0] % 32 ) * 64 ) + ( $values[1] % 64 );
  28. $number = dechex($number);
  29. $unicode[] = (strlen($number)==3)?"\u0".$number:"\u".$number;
  30. $values = array();
  31. $lookingFor = 1;
  32. } // if
  33. } // if
  34. }
  35. } // for
  36. return implode("",$unicode);
  37. }