Выбор ответа Junior Строки обновлено
Многобайтовые строки
Вопрос
Как правильно получить первые 3 символа строки "Ёжик" в UTF-8?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: mbsubstr($s, 0, 3). substr и индексация $s[0] работают с байтами: из «Ёжик» получится «Ё» и половина «ж», то есть битая строка. mbsubstr считает символы с учётом кодировки (по умолчанию UTF-8). strsplit тоже режет по байтам, для символов есть mbstrsplit.
Варианты ответа
mb_substr($s, 0, 3)правильный ответsubstr($s, 0, 3)$s[0] . $s[1] . $s[2]str_split($s)[0]
Разбор
substr и индексация $s[0] работают с байтами: из «Ёжик» получится «Ё» и половина «ж», то есть битая строка. mb_substr считает символы с учётом кодировки (по умолчанию UTF-8). str_split тоже режет по байтам, для символов есть mb_str_split.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.