utf8_decode
Преобразовывает строку из кодировки UTF-8 в кодировку ISO-8859-1, заменяя недопустимые или непредставимые символы
&warn.deprecated.function-8-2-0;
&reftitle.description;
#[\Deprecated]
stringutf8_decode
stringstring
Функция преобразовывает строку string из кодировки
UTF-8 в кодировку ISO-8859-1.
Байты в строке, которые не соответствуют корректным символам кодировки UTF-8
и UTF-8-символам, которые не содержатся в кодировке ISO-8859-1 —
кодовые точки выше U+00FF, заменяются на символ ?.
Часто веб-страницы, которые отметили как страницы в кодировке
ISO-8859-1, кодируются похожей кодировкой —
Windows-1252, и браузеры интерпретируют
страницы в кодировке ISO-8859-1 как страницы в кодировке Windows-1252.
Однако кодировка Windows-1252 вместо управляющих кодов
кодировки ISO-8859-1 содержит дополнительные печатные
символы наподобие знака евро € и английских двойных кавычек
“ ”. Функция не конвертирует такие символы
кодировки Windows-1252 корректно. Для конвертации в кодировку
Windows-1252 пользуются альтернативными функциями.
&reftitle.parameters;
string
Строка в кодировке UTF-8.
&reftitle.returnvalues;
Функция возвращает данные параметра string, которые преобразовала в кодировку ISO-8859-1.
&reftitle.changelog;
&Version;
&Description;
8.2.0
Функция устарела.
7.2.0
Функцию перенесли из модуля XML в ядро PHP.
В предыдущих версиях функция была доступна только при установленном модуле XML.
&reftitle.examples;
Простой пример преобразования строки из кодировки UTF-8 в кодировку ISO-8859-1
]]>
&example.outputs;
&reftitle.notes;
Устаревание и альтернативы
Начиная с PHP 8.2.0 функция устарела и её удалят в будущей версии.
Разработчики языка рекомендуют заменить вызовы функции в коде альтернативами.
Аналогичную функциональность даёт функция mb_convert_encoding,
которая поддерживает кодировку ISO-8859-1 и набор других кодировок символов.
]]>
&example.outputs;
Другие способы, доступность которых зависит от загруженных модулей, —
метод UConverter::transcode и функция iconv.
Каждый следующий способ даёт один и тот же результат:
]]>
&example.outputs;
Символ '?' как значение элемента 'to_subst' в массиве опций
метода UConverter::transcode даёт тот же результат,
что и функция utf8_decode для недопустимых строк
или строк, которые невозможно представить в кодировке ISO 8859-1.
'?']
);
var_dump($iso8859_1_string);
?>
]]>
&example.outputs;
&reftitle.seealso;
utf8_encode
mb_convert_encoding
UConverter::transcode
iconv