_mb_chr()WP 7.1.0

Internal compat function to mimic mb_chr().

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.

Returns

string|false. A string containing the requested character, if it can be represented in the specified encoding or false on failure.

Usage

_mb_chr( $codepoint, $encoding );
$codepoint(int) (required)
A Unicode codepoint value, e.g. 128024 for U+1F418 ELEPHANT.
$encoding("UTF-8"|null)
Must be 'UTF-8' or null.
Default: null

Changelog

Since 7.1.0 Introduced.

_mb_chr() code WP 7.1

function _mb_chr( $codepoint, $encoding = null ) {
	if ( ! is_int( $codepoint ) || ( isset( $encoding ) && 'UTF-8' !== $encoding ) ) {
		return false;
	}

	// Pre-check to ensure a valid code point.
	if (
		$codepoint < 0 ||
		( $codepoint >= 0xD800 && $codepoint <= 0xDFFF ) ||
		$codepoint > 0x10FFFF
	) {
		return false;
	}

	if ( $codepoint <= 0x7F ) {
		return chr( $codepoint );
	}

	if ( $codepoint <= 0x7FF ) {
		$byte1 = chr( ( $codepoint >> 6 ) | 0xC0 );
		$byte2 = chr( $codepoint & 0x3F | 0x80 );

		return "{$byte1}{$byte2}";
	}

	if ( $codepoint <= 0xFFFF ) {
		$byte1 = chr( ( $codepoint >> 12 ) | 0xE0 );
		$byte2 = chr( ( $codepoint >> 6 ) & 0x3F | 0x80 );
		$byte3 = chr( $codepoint & 0x3F | 0x80 );

		return "{$byte1}{$byte2}{$byte3}";
	}

	// Any values above U+10FFFF are eliminated above in the pre-check.
	$byte1 = chr( ( $codepoint >> 18 ) | 0xF0 );
	$byte2 = chr( ( $codepoint >> 12 ) & 0x3F | 0x80 );
	$byte3 = chr( ( $codepoint >> 6 ) & 0x3F | 0x80 );
	$byte4 = chr( $codepoint & 0x3F | 0x80 );

	return "{$byte1}{$byte2}{$byte3}{$byte4}";
}