Преобразовывает строку из одной кодировки символов в другую

# mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_convert_encoding — Преобразовывает строку из одной кодировки символов в другую

### Описание

function mb_convert_encoding(array|string `$string`, string `$to_encoding`, array|string|null `$from_encoding` = `null`): array|string|false

Функция преобразовывает значение параметра `string` из кодировки `from_encoding`, или текущей внутренней кодировки, в кодировку `to_encoding`. При передаче в параметр `string` массива (array) функция рекурсивно преобразует каждое string-значение массива.

### Список параметров

`string`

  Строка (string) или массив (array), для преобразования.

`to_encoding`

  Кодировка результата.

`from_encoding`

  Текущая кодировка для интерпретации строки `string`. Набор кодировок указывают в массиве (array) или в строке со списком значений через запятую, тогда PHP попытается определить правильную кодировку по тому же алгоритму, которым определяет кодировку функция mb_detect_encoding().

  При пропуске параметра `from_encoding` или установке значения `null` функция опирается на настройку директивы mbstring.internal_encoding, если директиву установили, иначе на значение директивы default_charset.

  Допустимые значения параметров `to_encoding` и `from_encoding` перечисляет страница «Поддерживаемые кодировки символов».

### Возвращаемые значения

Функция возвращает или закодированную строку (string), или закодированный массив (array), или `false`, если возникла ошибка.

### Ошибки

Начиная с PHP 8.0.0 функция выбросит ошибку ValueError, если значением параметра `to_encoding` или параметра `from_encoding` окажется недопустимая кодировка. До PHP 8.0.0 вместо этого выдавалась ошибка уровня `E_WARNING`.

### Список изменений

Версия | Описание
--- | ---
8.2.0 | Функция mb_convert_encoding() больше не возвращает следующие нетекстовые кодировки: `"Base64"`, `"QPrint"`, `"UUencode"`, `"HTML entities"`, `"7 bit"` и `"8 bit"`.
8.0.0 | Функция mb_convert_encoding() теперь выбрасывает ошибку ValueError при передаче в параметр `to_encoding` недопустимой кодировки.
8.0.0 | Функция mb_convert_encoding() теперь выбрасывает ошибку ValueError при передаче в параметр `from_encoding` недопустимой кодировки.
8.0.0 | Параметр `from_encoding` теперь принимает значение `null`.
7.2.0 | Функция теперь также принимает массив (array) как значение параметра `string`. Раньше поддерживались только значения string.

### Примеры

Пример #1 Пример изменения кодировки строки функцией mb_convert_encoding()

    <?php

    /* Преобразовывает строку в кодировку SJIS */
    $str = mb_convert_encoding($str, "SJIS");

    /* Преобразовывает из кодировки EUC-JP в кодировку UTF-7 */
    $str = mb_convert_encoding($str, "UTF-7", "EUC-JP");

    /* Автоматически определяется кодировка среди JIS, eucjp-win, sjis-win, затем преобразовывается в UCS-2LE */
    $str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

    /* Если директива mbstring.language равна "Japanese", значение кодировки "auto" будет расширено до "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
    $str = mb_convert_encoding($str, "EUC-JP", "auto");

    ?>

### Смотрите также

- mb_detect_order() - Устанавливает или получает порядок определения кодировки символов
- UConverter::transcode() - Преобразовывает строку из одной кодировки символов в другую
- iconv() - Преобразовывает строку из одной кодировки символов в другую

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