• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • Normalizer::getRawDecomposition()

    normalizer_get_raw_decomposition

    (PHP 7 >= 7.3)

    Gets the Decomposition_Mapping property for the given UTF-8 encoded code point

    说明

    面向对象风格
    publicstaticNormalizer::getRawDecomposition(string $input): string
    过程化风格
    normalizer_get_raw_decomposition(string $input): string

    Gets the Decomposition_Mapping property, as specified in the Unicode Character Database(UCD), for the given UTF-8 encoded code point.

    参数

    $input

    The input string, which should be a single, UTF-8 encoded, code point.

    返回值

    Returns a string containing the Decomposition_Mapping property, if present in the UCD.

    Returns NULL if there is no Decomposition_Mapping property for the character.

    范例

    Normalizer::getRawDecomposition() example

    <?php
    $result = "";
    $strings = [
        "a",
        "\u{FFDA}",
        "\u{FDFA}",
        "",
        "aa",
        "\xF5",
    ];
    foreach ($strings as $string) {
        $decomposition = Normalizer::getRawDecomposition($string);
        // $decomposition = normalizer_get_raw_decomposition($string); Procedural way
        $error_code = intl_get_error_code();
        $error_message = intl_get_error_message();
        $string_hex = bin2hex($string);
        $result .= "---------------------\n";
        if ($decomposition === null) {
            $result .= "'$string_hex' has no decomposition mapping\n" ;
        } else {
            $result .= "'$string_hex' has the decomposition mapping '" . bin2hex($decomposition) . "'\n" ;
        }
        $result .= "error info: '$error_message' ($error_code)\n";
    }
    echo $result;
    ?>
    

    以上例程会输出:

    ---------------------
    '61' has no decomposition mapping
    error info: 'U_ZERO_ERROR' (0)
    ---------------------
    'efbf9a' has the decomposition mapping 'e385a1'
    error info: 'U_ZERO_ERROR' (0)
    ---------------------
    'efb7ba' has the decomposition mapping 'd8b5d984d98920d8a7d984d984d98720d8b9d984d98ad98720d988d8b3d984d985'
    error info: 'U_ZERO_ERROR' (0)
    ---------------------
    '' has no decomposition mapping
    error info: 'Input string must be exactly one UTF-8 encoded code point long.: U_ILLEGAL_ARGUMENT_ERROR' (1)
    ---------------------
    '6161' has no decomposition mapping
    error info: 'Input string must be exactly one UTF-8 encoded code point long.: U_ILLEGAL_ARGUMENT_ERROR' (1)
    ---------------------
    'f5' has no decomposition mapping
    error info: 'Code point out of range: U_ILLEGAL_ARGUMENT_ERROR' (1)
    

    参见

    • Normalizer::normalize() Normalizes the input provided and returns the normalized string
    • Normalizer::isNormalized() Checks if the provided string is already in the specified normalization form