Нормализовать многозначный символ Юникода с переполнением стека

Я хочу нормализовать набор символов Юникода. Однако, когда символы имеют более одного акцента, каноническая нормализация не работает должным образом.
Код теста, который я использовал ниже:

<?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 не нормализуется, как ожидалось.

Постскриптум хотя три переменные могут иметь одинаковый характер, различный порядок акцента, пожалуйста, скопируйте и вставьте в редактор с поддержкой Unicode).

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]