(PHP 7 >= 7.3, PHP 8)
Normalizer::getRawDecomposition -- normalizer_get_raw_decomposition — Извлекает свойство Decomposition_Mapping для заданного символа UTF-8
Объектно-ориентированный стиль
$string, int $form = Normalizer::FORM_C): ?stringПроцедурный стиль
Извлекает свойство Decomposition_Mapping, как определено в Unicode Character Database (UCD), для заданного символа UTF-8.
stringСтрока, которая должна представлять из себя единичный символ в кодировке UTF-8.
Возвращает строку (string), содержащую свойство Decomposition_Mapping, если оно присутствует в UCD.
   Возвращает null если для символа отсутствует свойство Decomposition_Mapping.
  
Пример #1 Пример использования Normalizer::getRawDecomposition()
<?php
$result = "";
$strings = [
    "a",
    "\u{FFDA}",
    "\u{FDFA}",
    "",
    "aa",
    "\xF5",
];
foreach ($strings as $string) {
    $decomposition = Normalizer::getRawDecomposition($string);
    // $decomposition = normalizer_get_raw_decomposition($string); Процедурный стиль
    $error_code = intl_get_error_code();
    $error_message = intl_get_error_message();
    $string_hex = bin2hex($string);
    $result .= "---------------------\n";
    if ($decomposition === null) {
        $result .= "'$string_hex' не имеет соответствия декомпозиции\n" ;
    } else {
        $result .= "'$string_hex' имеет соответствие декомпозиции '" . bin2hex($decomposition) . "'\n" ;
    }
    $result .= "error info: '$error_message' ($error_code)\n";
}
echo $result;
?>Результат выполнения приведённого примера:
--------------------- '61' не имеет соответствия декомпозиции error info: 'U_ZERO_ERROR' (0) --------------------- 'efbf9a' имеет соответствие декомпозиции 'e385a1' error info: 'U_ZERO_ERROR' (0) --------------------- 'efb7ba' имеет соответствие декомпозиции 'd8b5d984d98920d8a7d984d984d98720d8b9d984d98ad98720d988d8b3d984d985' error info: 'U_ZERO_ERROR' (0) --------------------- '' не имеет соответствия декомпозиции error info: 'Input string must be exactly one UTF-8 encoded code point long.: U_ILLEGAL_ARGUMENT_ERROR' (1) --------------------- '6161' не имеет соответствия декомпозиции error info: 'Input string must be exactly one UTF-8 encoded code point long.: U_ILLEGAL_ARGUMENT_ERROR' (1) --------------------- 'f5' не имеет соответствия декомпозиции error info: 'Code point out of range: U_ILLEGAL_ARGUMENT_ERROR' (1)
