# Многобайтовые строки

# Введение

Количество символов в одних естественных языках при кодировании каждого отдельного символа восьмибитным значением не превышает количество символов в кодировке, в других языках количество символов для письменного общения не помещается в диапазон однобайтовой кодировки; байт состоит из восьми бит, каждый бит содержит одно значение: ноль или единицу, поэтому один байт представляет только 256 уникальных значений — два в восьмой степени. Схемы многобайтовых кодировок символов разработали для представления больше 256 символов в стандартной побайтовой системе.

При обработке многобайтовых строк — обрезке пробельных символов, разбиении, сращивании — вызывают специфичные функции, поскольку в таких схемах кодирования на представление одного символа требуется больше одного последовательного байта, и если применить к строке функцию, которая не поддерживает работу с многобайтовыми строками, функция наверняка неправильно определит начало и конец многобайтового символа, и в результате получит повреждённую мусорную строку, которая, скорее всего, потеряет исходное значение.

Модуль `mbstring` предоставляет функции для работы с многобайтовыми строками. Такие функции помогают работать с многобайтовыми кодировками в PHP. Кроме того, модуль `mbstring` конвертирует строки из одной кодировки в другую. Модуль `mbstring` спроектировали для обработки Unicode-кодировок наподобие UTF-8 и UCS-2 и удобной работы со множеством однобайтовых кодировок, которые перечисляет раздел «Поддерживаемые кодировки символов».

- Установка и настройка
  - Установка
  - Настройка во время выполнения
- Предопределённые константы
- Краткий обзор поддерживаемых кодировок
- Основы японских многобайтовых кодировок
- Ввод и вывод HTTP
- Поддерживаемые кодировки символов
- Механизм перегрузки функций
- Требования, предъявляемые к кодировкам символов в PHP
- Функции для работы с многобайтовыми строками
  - mb_check_encoding — Проверяет, допустима ли строка для заданной кодировки
  - mb_chr — Возвращает символ по значению кодовой точки Unicode
  - mb_convert_case — Меняет регистр символов в строке
  - mb_convert_encoding — Преобразовывает строку из одной кодировки символов в другую
  - mb_convert_kana — Преобразовывает одну кодировку "kana" в другую: "zen-kaku", "han-kaku" и другие
  - mb_convert_variables — Преобразовывает символы в переменной(-ых) из одной кодировки в другую
  - mb_decode_mimeheader — Декодирует строку в MIME-заголовке
  - mb_decode_numericentity — Декодирует числовые HTML-сущности в символы
  - mb_detect_encoding — Определяет кодировку символов
  - mb_detect_order — Устанавливает или получает порядок определения кодировки символов
  - mb_encode_mimeheader — Кодирует строку для заголовка MIME
  - mb_encode_numericentity — Кодирует символы в числовые HTML-сущности
  - mb_encoding_aliases — Получает псевдонимы известного типа кодировки
  - mb_ereg — Находит совпадение регулярному выражению с поддержкой многобайтовых кодировок
  - mb_ereg_match — Определяет, соответствует ли многобайтовая строка регулярному выражению
  - mb_ereg_replace — Заменяет по регулярному выражению с поддержкой многобайтовых кодировок
  - mb_ereg_replace_callback — Выполняет поиск и замену по регулярному выражению с поддержкой многобайтовых кодировок, обрабатывая совпадения callback-функцией
  - mb_ereg_search — Находит соответствие предопределённой строки в многобайтовой кодировке регулярному выражению
  - mb_ereg_search_getpos — Возвращает начальную позицию следующего совпадения с регулярным выражением
  - mb_ereg_search_getregs — Получает последнее совпадение строки в многобайтовой кодировке регулярному выражению
  - mb_ereg_search_init — Настраивает строку и регулярное выражение для поиска соответствий строки в многобайтовой кодировке регулярному выражению
  - mb_ereg_search_pos — Возвращает позицию и длину совпавшего с регулярным выражением участка многобайтовой строки
  - mb_ereg_search_regs — Возвращает совпавшую с регулярным выражением часть строки
  - mb_ereg_search_setpos — Задаёт начальную позицию в строке, с которой начнётся поиск соответствий регулярному выражению
  - mb_eregi — Находит соответствие регулярному выражению с поддержкой многобайтовых символов без учёта регистра
  - mb_eregi_replace — Заменяет по регулярному выражению с поддержкой многобайтовых символов без учёта регистра
  - mb_get_info — Получает внутренние настройки модуля mbstring
  - mb_http_input — Определяет кодировку символов входных данных HTTP-запроса
  - mb_http_output — Устанавливает или получает кодировку символов HTTP-вывода
  - mb_internal_encoding — Устанавливает или получает внутреннюю кодировку символов файла скрипта
  - mb_language — Устанавливает или получает текущий язык
  - mb_lcfirst — Преобразовывает первый символ строки в нижний регистр
  - mb_list_encodings — Возвращает массив поддерживаемых кодировок
  - mb_ltrim — Удаляет пробельные или другие символы в начале строки
  - mb_ord — Получает кодовую точку символа Unicode
  - mb_output_handler — Преобразовывает кодировку символов в буфере вывода, выступая в роли callback-функции
  - mb_parse_str — Разбирает данные запросов GET, POST, COOKIE и устанавливает значения глобальных переменных
  - mb_preferred_mime_name — Получает строку кодировки MIME
  - mb_regex_encoding — Устанавливает или получает кодировку символов для многобайтового регулярного выражения
  - mb_regex_set_options — Устанавливает или получает значение по умолчанию для настроек функций mbregex
  - mb_rtrim — Удаляет пробелы или другие символы в конце строки
  - mb_scrub — Заменяет неправильно сформированные последовательности байтов символом-заменителем
  - mb_send_mail — Отправляет закодированное электронное письмо
  - mb_split — Разбивает многобайтовую строку регулярным выражением
  - mb_str_pad — Дополняет мультибайтовую строку другой мультибайтовой строкой до заданной длины
  - mb_str_split — Возвращает массив символов многобайтовой строки
  - mb_strcut — Получает часть строки
  - mb_strimwidth — Получает строку, обрезанную до заданной ширины
  - mb_stripos — Ищет в строке позицию первого вхождения подстроки, без учёта регистра
  - mb_stristr — Возвращает часть строки до или после первого вхождения подстроки, без учёта регистра
  - mb_strlen — Получает длину строки
  - mb_strpos — Ищет в строке позицию первого вхождения подстроки
  - mb_strrchr — Возвращает часть строки до или после последнего вхождения подстроки
  - mb_strrichr — Возвращает часть строки до или после последнего вхождения подстроки, без учёта регистра
  - mb_strripos — Ищет в строке позицию последнего вхождения подстроки, без учёта регистра
  - mb_strrpos — Ищет в строке позицию последнего вхождения подстроки
  - mb_strstr — Возвращает часть строки до или после первого вхождения подстроки
  - mb_strtolower — Приводит строку к нижнему регистру
  - mb_strtoupper — Приводит строку к верхнему регистру
  - mb_strwidth — Возвращает ширину строки
  - mb_substitute_character — Устанавливает или получает символ замены
  - mb_substr — Возвращает часть строки
  - mb_substr_count — Возвращает количество вхождений подстроки
  - mb_trim — Удаляет пробельные или другие символы в начале и конце строки
  - mb_ucfirst — Преобразовывает первый символ строки в верхний регистр

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open