Преобразовывает строку из кодировки ISO-8859-1 в кодировку UTF-8

# utf8_encode

(PHP 4, PHP 5, PHP 7, PHP 8)

utf8_encode — Преобразовывает строку из кодировки ISO-8859-1 в кодировку UTF-8

Внимание

Начиная с PHP 8.2.0 функция УСТАРЕЛА. Полагаться на функцию настоятельно не рекомендуют.

### Описание

#[\Deprecated]
function utf8_encode(string `$string`): string

Функция преобразовывает строку `string` из кодировки `ISO-8859-1` в кодировку `UTF-8`.

> Замечание:

> Функция не пытается угадать текущую кодировку предоставленной строки, а предполагает, что строку закодировали в кодировке ISO-8859-1 (которую также знают как Latin 1) и преобразовывает строку в кодировку UTF-8. Поскольку каждая последовательность байтов — корректная строка в кодировке ISO-8859-1, это никогда не приводит к ошибке, но не приведёт к получению полезной строки, если предполагалась другая кодировка.

> Часто веб-страницы, которые отметили как страницы в кодировке `ISO-8859-1`, кодируются похожей кодировкой — `Windows-1252`, и браузеры интерпретируют страницы в кодировке `ISO-8859-1` как страницы в кодировке `Windows-1252`. Однако кодировка `Windows-1252` вместо управляющих кодов кодировки `ISO-8859-1` содержит дополнительные печатные символы наподобие знака евро `€` и английских двойных кавычек `“` `”`. Функция не конвертирует такие символы кодировки `Windows-1252` корректно. Для конвертации в кодировку `Windows-1252` пользуются альтернативными функциями.

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

`string`

  Строка в кодировке ISO-8859-1.

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

Функция возвращает строку `string`, которую преобразовала в кодировку в UTF-8.

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

Версия | Описание
--- | ---
8.2.0 | Функция устарела.
7.2.0 | Функцию перенесли из модуля XML в ядро PHP. В предыдущих версиях функция была доступна только при установленном модуле XML.

### Примеры

Пример #1 Простой пример преобразования строки из кодировки ISO-8859-1 в кодировку UTF-8

    <?php

    // Преобразование строки 'Zoë' из кодировки ISO 8859-1 в кодировку UTF-8
    $iso8859_1_string = "\x5A\x6F\xEB";
    $utf8_string = utf8_encode($iso8859_1_string);
    echo bin2hex($utf8_string), "\n";

    ?>

Результат выполнения приведённого примера:

    5a6fc3ab

### Примечания

> Замечание: Устаревание и альтернативы

> Начиная с PHP 8.2.0 функция устарела и её удалят в будущей версии. Разработчики языка рекомендуют заменить вызовы функции в коде альтернативами.

> Аналогичную функциональность даёт функция mb_convert_encoding(), которая поддерживает кодировку ISO-8859-1 и набор других кодировок символов.

>     <?php

>     $iso8859_1_string = "\xEB"; // Символ "ë" — буква «e» с диерезисом в кодировке UTF-8
>     $utf8_string = mb_convert_encoding($iso8859_1_string, 'UTF-8', 'ISO-8859-1');
>     echo bin2hex($utf8_string), "\n";

>     $iso8859_7_string = "\xEB"; // Та же строка в кодировке ISO-8859-7 представляет символ «λ» — греческую строчную лямбду
>     $utf8_string = mb_convert_encoding($iso8859_7_string, 'UTF-8', 'ISO-8859-7');
>     echo bin2hex($utf8_string), "\n";

>     $windows_1252_string = "\x80"; // Символ "€" — знак евро в кодировке Windows-1252, не содержится в кодировке ISO-8859-1
>     $utf8_string = mb_convert_encoding($windows_1252_string, 'UTF-8', 'Windows-1252');
>     echo bin2hex($utf8_string), "\n";

>     ?>

> Результат выполнения приведённого примера:

>     c3ab
>     cebb
>     e282ac

> Другие способы, доступность которых зависит от загруженных модулей, — метод UConverter::transcode() и функция iconv().

> Каждый следующий способ даёт один и тот же результат:

>     <?php

>     $iso8859_1_string = "\x5A\x6F\xEB"; // 'Zoë' в кодировке ISO-8859-1

>     $utf8_string = utf8_encode($iso8859_1_string);
>     echo bin2hex($utf8_string), "\n";

>     $utf8_string = mb_convert_encoding($iso8859_1_string, 'UTF-8', 'ISO-8859-1');
>     echo bin2hex($utf8_string), "\n";

>     $utf8_string = UConverter::transcode($iso8859_1_string, 'UTF8', 'ISO-8859-1');
>     echo bin2hex($utf8_string), "\n";

>     $utf8_string = iconv('ISO-8859-1', 'UTF-8', $iso8859_1_string);
>     echo bin2hex($utf8_string), "\n";

>     ?>

> Результат выполнения приведённого примера:

>     5a6fc3ab
>     5a6fc3ab
>     5a6fc3ab
>     5a6fc3ab

### Смотрите также

- utf8_decode() - Преобразовывает строку из кодировки UTF-8 в кодировку ISO-8859-1, заменяя недопустимые или непредставимые символы
- mb_convert_encoding() - Преобразовывает строку из одной кодировки символов в другую
- UConverter::transcode() - Преобразовывает строку из одной кодировки символов в другую
- iconv() - Преобразовывает строку из одной кодировки символов в другую

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open