Services_JSON::utf162utf8()
Deprecated from version 5.3.0. It is no longer supported and can be removed in future releases. Use
PHP native JSON extension
instead.convert a string from one UTF-16 char to one UTF-8 char
Normally should be handled by mb_convert_encoding, but provides a slower PHP-only method for installations that lack the multibye string extension.
Method of the class: Services_JSON{}
Internal function — this function is designed to be used by the kernel itself. It is not recommended to use this function in your code.
No Hooks.
Return
String
. UTF-8 character
Usage
$Services_JSON = new Services_JSON(); $Services_JSON->utf162utf8( $utf16 );
- $utf16(string) (required)
- UTF-16 character
Changelog
Deprecated since 5.3.0 | Use the PHP native JSON extension instead. |
Services_JSON::utf162utf8() Services JSON::utf162utf8 code WP 6.5.2
function utf162utf8($utf16) { _deprecated_function( __METHOD__, '5.3.0', 'The PHP native JSON extension' ); // oh please oh please oh please oh please oh please if($this->_mb_convert_encoding) { return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16'); } $bytes = (ord($utf16[0]) << 8) | ord($utf16[1]); switch(true) { case ((0x7F & $bytes) == $bytes): // this case should never be reached, because we are in ASCII range // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 return chr(0x7F & $bytes); case (0x07FF & $bytes) == $bytes: // return a 2-byte UTF-8 character // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 return chr(0xC0 | (($bytes >> 6) & 0x1F)) . chr(0x80 | ($bytes & 0x3F)); case (0xFFFF & $bytes) == $bytes: // return a 3-byte UTF-8 character // see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 return chr(0xE0 | (($bytes >> 12) & 0x0F)) . chr(0x80 | (($bytes >> 6) & 0x3F)) . chr(0x80 | ($bytes & 0x3F)); } // ignoring UTF-32 for now, sorry return ''; }