Некорректное определение длины string при mbstring.func_overload=2

3D

Новичок
Некорректное определение длины string при mbstring.func_overload=2

При включенной настройке
mbstring.func_overload=2

strlen() и mb_strlen() выдают меньшее, чем должно быть, количество символов в строке, содержащей символы русского алфавита


PHP:
echo mb_internal_encoding();                      // UTF-8

echo mb_detect_encoding($string);             // UTF-8

echo mb_strlen($string);                              // Неправильная  длина
echo mb_strlen($string, WINDOWS-1251);  // Правильная длина
Помогите, пожалуйста, разобраться в чем проблема.
 

3D

Новичок
Автор оригинала: dimagolov
mb_detect_encoding не способна отличить однобайтные кодировки от многобайтных. исходя из этого + учитывая последнюю строчку в твоем коде можно утверждать, что у тебя просто строка в WINDOWS-1251, а не в UTF-8
Строка берется из базы MySQL, кодировка поля в которой стоит как utf8????
 
Сверху