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. Если значение параметра string — это массив (array), все его строковые (string) значения будут рекурсивно преобразованы.

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

string

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

to_encoding

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

from_encoding

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

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

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