我想规范化一组unicode字符。但是,当字符具有多个重音时,规范标准化不会按预期工作。 我使用的测试代码如下:
<?php
function print_codes($s) {
$chars = preg_split('//u', $s, -1, PREG_SPLIT_NO_EMPTY);
echo implode(' ', $chars) . '<br>';
}
$k1 = 'කො';
$k2 = 'කො';
$k3 = 'කාෙ';
print_codes($k1);
print_codes($k2);
print_codes($k3);
echo '*Normalizer*<br>';
$k1 = normalizer_normalize($k1, Normalizer::FORM_C);
$k2 = normalizer_normalize($k2, Normalizer::FORM_C);
$k3 = normalizer_normalize($k3, Normalizer::FORM_C);
print_codes($k1);
print_codes($k2);
print_codes($k3);
?>
请注意,k3未按预期正常化。
P.S。虽然这三个变量可能看起来具有相同的字符,但它具有不同的重音排序,请复制并粘贴到启用了unicode的编辑器上。