(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_convert_encoding — Преобразовывает строку из одной кодировки символов в другую
$string, string $to_encoding, array|string|null $from_encoding = null): array|string|false
Функция преобразовывает значение параметра string
из кодировки from_encoding, или текущей внутренней кодировки,
в кодировку to_encoding.
При передаче в параметр string массива (array)
функция рекурсивно преобразует каждое string-значение массива.
stringto_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");
?>