Заметил, что в некоторых непонятных случаях php считает букву "Й" не 1 символом, а двумя. Из-за этого возникают разные неприятности, например при переборе символов функцией mb_substr. Как можно решить эту проблему?
Можно применять нормализацию:
$i1 = "\xd0\xb9"; // й
$i2 = "\xd0\xb8\xcc\x86"; // и с дужкой
echo $i1, ' ', strlen($i1), ' ', mb_strlen($i1), ' ', mb_strlen(Normalizer::normalize($i1, Normalizer::NFC)), "\n";
echo $i2, ' ', strlen($i2), ' ', mb_strlen($i2), ' ', mb_strlen(Normalizer::normalize($i2, Normalizer::NFC)), "\n";
й 2 1 1
й 4 2 1
после нормализации, композитная версия й превращается в простую.
3v4l
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости