В переменной $a храниться значение "воды" (полученное из БД)
echo strlen($a);
Выведет на экран 5 ... а то и 6
Эту проблему решил так:
echo mb_strlen($a);
Выводит как положено 4.
Но тут возникла необходимость воспользоваться следующим:
Значения переменных: $s1="вхды" и $s2="воды"
echo similar_text($s1, $s2);
Выводит 6, а должно быть 3.
Примечание: $s1 и $s2 получены из БД.
PS, укажу максимум данных:
в коде прописано:
mb_internal_encoding('UTF-8');
setlocale(LC_ALL, 'ru_RU.UTF-8');
К БД подключаясь указываю такую кодировку: SET NAMES UTF8
В БД кодировка строк utf8_general_ci
Кодировка файла со скриптом UTF-8 (без BOM)
Спустя 1 час, 1 минута, 37 секунд (6.11.2010 - 07:16) kirik написал(а):
Не совсем уверен, но вероятно, что эта функция не работает с юникодом. Как выход - написать свою реализацию (и запостить ее на php.net ).
Спустя 2 часа, 47 минут, 56 секунд (6.11.2010 - 10:04) greatilya написал(а):
Спасибо!