mb_convert_encoding

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

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

Описание

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

Преобразует параметр string из кодировки from_encoding или текущей внутренней кодировки в to_encoding. Также можно указать необязательный параметр from_encoding. Если string является массивом (array), все его строковые (string) значения будут преобразованы рекурсивно.

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

string

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

to_encoding

Требуемая кодировка результата.

from_encoding

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

Если параметр from_encoding опущен или равен null, то будет использоваться mbstring.internal_encoding setting, если она установлена, иначе кодировка по умолчанию.

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

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

Преобразованная строка (string) или массив (array) или false в случае возникновения ошибки.

Ошибки

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

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

Версия Описание
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() - Преобразует строку из одной кодировки символов в другую