Вопросы к Поиску с Алисой
Разница между функциями substr и mbsubstr при работе с многобайтовыми кодировками заключается в том, что substr некорректно работает с такими кодировками, а mbsubstr — корректно. gist.github.com phpstack.ru
Это объясняется тем, что в многобайтовых кодировках, например UTF-8, символ закодирован с помощью от 1 до 6 байтов, а substr думает, что буква всегда кодируется одним байтом. gist.github.com В результате получаются битые символы. gist.github.com
Таким образом, при работе с текстом, который потенциально может содержать многобайтовые символы, следует использовать mb_substr. phpstack.ru
Пример: если в UTF-8 кириллица кодируется двумя байтами, то substr посчитает, что символ равен байту, и вырежет два байта с начала, что приведёт к потере части символа. phpstack.ru