korpus
злой бобёр
PHP:
<?php
error_reporting(E_ALL | E_STRICT);
setlocale(LC_ALL, 'ru_RU.UTF-8');
$raw_str='http://ads.chernihiv.info/ad/%D0%9E%D1%85%D1%80%D0%B0%D0%BD%D0%B0.67793';
$decode_str=rawurldecode($raw_str); //декодирую всю строку из URL-кодировки
echo $decode_str.'<br />'; //вывожу в браузер всю строку, чтобы посмотреть, что всё декодировано верно (кодировка UTF-8)
echo mb_substr($decode_str, 0, 36).'<br />'; //Использую mb_string чтобы обрезать строку
?>
Далее я обрезаю строку с помощью функции mb_substr, которая должна понимать UTF-8. Но обрезка все равно происходит не побуквенно, а побайтово, и в браузере последний символ отображается некорректно.Если попробовать изменить число 36 на 37, то можно будет увидеть корректную обрезку сроки.
В чём здесь проблема?