Введение
Хотя и существует множество языков, в которых все необходимые символы можно
закодировать одним восьмибитным значением, существуют также и языки, требующие
столько символов, что они не умещаются в один байт (Байт состоит из восьми бит.
Каждый бит может содержать одно из двух различных значений, единицу или ноль.
Поэтому, один байт может задавать только 256 уникальных значений (два в восьмой степени)).
Схемы кодирования, использующие многобайтные строки, были разработаны для того,
чтобы можно было пользоваться более, чем 256 символами, при этом продолжая работать
со строками, как будто они закодированы в обычной побайтовой системе.
Когда вы работаете с многобайтными строками (удаляете пробельные символы с
помощью функции trim, разбиваете строку на массив по регулярному выражению с
помощью функции split, и т.д.), необходимо использовать специальные функции,
так как в таких кодировках два или более последовательных байта могут задавать
один символ. Иначе, если применить функцию, не умеющую работать с многобайтными
строками, она, вероятно, не сможет определить начало и конец многобайтных
символов, и в итоге вы получите строку-мусор, которая скорее
всего потеряет исходное значение.
mbstring предоставляет функции для работы с многобайтными строками,
которые облегчают работу c многобайтными кодировками в PHP. Кроме того,
mbstring занимается конвертированием строк из одной кодировки в другую.
mbstring предназначен для работы с Unicode-кодировками, такими, как UTF-8 и UCS-2,
а также с многими однобайтными кодировками (для удобства), перечисленными ниже.