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

utf8_encode()

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

Синтаксис

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

Синтаксис функции utf8_encode()

php
utf8_encode($string)

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

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

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

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

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

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

php
<?php
// Note: This example assumes the PHP source file is saved in ISO-8859-1.
// If your editor saves files as UTF-8 by default, utf8_encode() will double-encode the string.
$text = "Café au lait";
$utf8_text = utf8_encode($text);
echo $utf8_text;
?>

В этом коде определяется строковая переменная $text с текстом в кодировке ISO-8859-1 "Café au lait". Затем используется функция utf8_encode() для преобразования текста в кодировку UTF-8, а результат сохраняется в новой переменной $utf8_text. В завершение преобразованный текст выводится в консоль.

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

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

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

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

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

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

Заключение

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

Практика

Какова цель функции utf8_encode() в PHP?

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

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