• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/punycode.php
  • Класс: CBXPunycode
  • Вызов: CBXPunycode::Ucs4ToUtf8
private function Ucs4ToUtf8($input)
{
	$output = '';
	foreach ($input as $k => $v)
	{
		if ($v < 128)
		{
			$output .= chr($v);
		}
		elseif ($v < (1 << 11))
		{
			$output .= chr(192 + ($v >> 6)).chr(128 + ($v & 63));
		}
		elseif ($v < (1 << 16))
		{
			$output .= chr(224 + ($v >> 12)).chr(128 + (($v >> 6) & 63)).chr(128 + ($v & 63));
		}
		elseif ($v < (1 << 21))
		{
			$output .= chr(240 + ($v >> 18)).chr(128 + (($v >> 12) & 63)).chr(128 + (($v >> 6) & 63)).chr(128 + ($v & 63));
		}
		else
		{
			$this->AddError('UCS-4 / UTF-8 conversion failed: byte '.$k);
			return false;
		}
	}
	return $output;
}