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