Перейти к содержимому

utf8_decode()

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

Примечание: Начиная с PHP 8.2 функция utf8_decode() устарела. Для современных приложений вместо неё рекомендуется использовать mb_convert_encoding($string, 'ISO-8859-1', 'UTF-8').

Функция полезна, когда у вас есть текст в кодировке UTF-8, который необходимо отобразить или использовать в системе, поддерживающей только кодировку ISO-8859-1. Используя utf8_decode(), вы можете преобразовать текст в кодировку ISO-8859-1 и убедиться, что он отображается или используется корректно.

Синтаксис

Синтаксис функции utf8_decode() выглядит следующим образом:

Декодирование строки UTF-8 в PHP

php
utf8_decode($string)

Где $string — это строка в кодировке UTF-8, которую вы хотите преобразовать в кодировку ISO-8859-1.

Примеры использования

Рассмотрим несколько практических примеров использования utf8_decode() в PHP.

Пример 1: Преобразование текста в кодировке UTF-8 в ISO-8859-1

Предположим, у вас есть строка в кодировке UTF-8, которую нужно преобразовать в кодировку ISO-8859-1. Для этого вы можете использовать функцию utf8_decode(), как показано ниже:

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

php
<?php

$text = "Zoë";
$iso_text = utf8_decode($text);
echo bin2hex($iso_text);

?>

В этом коде определяется строковая переменная $text, содержащая текст в кодировке UTF-8. Затем используется функция utf8_decode() для преобразования текста в кодировку ISO-8859-1, а результат сохраняется в $iso_text. В конце выводится шестнадцатеричное представление текста в кодировке ISO-8859-1.

Возвращаемое значение и некорректные последовательности: Функция возвращает преобразованную строку или false в случае ошибки. Если входные данные содержат некорректные последовательности UTF-8, они заменяются на знак вопроса (?).

Пример 2: Преобразование текста в кодировке UTF-8 из XML

Предположим, у вас есть XML-файл с текстом в кодировке UTF-8, который нужно прочитать и преобразовать в кодировку ISO-8859-1. Вы можете использовать библиотеку SimpleXML в PHP для чтения XML-файла и функцию utf8_decode() для преобразования текста, как показано ниже:

Преобразование текста в кодировке UTF-8 из XML в PHP

php
$xml = simplexml_load_file("data.xml");
foreach ($xml->item as $item) {
  $title = utf8_decode($item->title);
  $description = utf8_decode($item->description);
  echo "$title: $description\n";
}

Этот код загружает XML-файл data.xml с помощью функции simplexml_load_file() и перебирает каждый <code><item></code> элемент с помощью цикла foreach. Внутри цикла используется функция utf8_decode() для преобразования текста в кодировке UTF-8 из элементов <code><title></code> и <code><description></code> в кодировку ISO-8859-1, а результаты сохраняются в двух новых переменных $title и $description. В конце преобразованный текст выводится в консоль.

Чтобы этот пример работал, файл data.xml должен содержать структуру, подобную следующей:

xml
<root>
  <item>
    <title>Example Title</title>
    <description>Example Description</description>
  </item>
</root>

Заключение

В этой статье мы рассмотрели функцию utf8_decode() в PHP и способы её использования для преобразования текста из кодировки UTF-8 в ISO-8859-1. Мы объяснили, что делает функция, её синтаксис, а также привели примеры практического применения. Следуя этим примерам, вы сможете легко использовать utf8_decode() для преобразования текста из UTF-8 в ISO-8859-1 и убедиться, что ваш текст корректно отображается или используется в системе.

Практика

Что делает функция utf8_decode в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.