У меня та же проблема, если я не задаю кодировку в качестве последнего параметра для mb_substr
: по умолчанию, по крайней мере на моем сервере, установлено значение ISO-8859-1
.
Но если я правильно установил кодировку на UTF-8
, она будет работать нормально:
echo mb_substr('ááááá', 0, 5, 'UTF-8');
Получает правильный дисплей в браузере:
ááááá
См. mb_substr
(цитирование, выделение мое) :
string mb_substr ( string $str , int $start [,
int $length [, string $encoding ]] )
Параметр encoding
кодировка символов. Если это так
опущено, внутренний символ
будет использовано значение кодировки .