utf8_decode()
La función utf8_decode() es una función integrada de PHP que convierte una cadena con codificación UTF-8 a codificación ISO-8859-1. UTF-8 es un formato de codificación de caracteres popular que admite todos los caracteres Unicode, mientras que ISO-8859-1 es un formato de codificación de caracteres estándar que admite solo un conjunto limitado de caracteres.
Nota: utf8_decode() está obsoleta desde PHP 8.2. Para aplicaciones modernas, utiliza mb_convert_encoding($string, 'ISO-8859-1', 'UTF-8') en su lugar.
La función es útil cuando tienes texto codificado en UTF-8 que debe mostrarse o utilizarse en un sistema que solo admite codificación ISO-8859-1. Al usar utf8_decode(), puedes convertir el texto a codificación ISO-8859-1 y asegurarte de que se muestre o utilice correctamente.
Sintaxis
La sintaxis de la función utf8_decode() es la siguiente:
decodificar cadena utf8 en PHP
utf8_decode($string)Donde $string es la cadena codificada en UTF-8 que deseas convertir a codificación ISO-8859-1.
Ejemplos de uso
Veamos algunos ejemplos prácticos del uso de utf8_decode() en PHP.
Ejemplo 1: Conversión de texto codificado en UTF-8 a ISO-8859-1
Supongamos que tienes una cadena con codificación UTF-8 que deseas convertir a codificación ISO-8859-1. Puedes usar la función utf8_decode() para hacerlo, de la siguiente manera:
Conversión de texto codificado en UTF-8 a ISO-8859-1 en PHP
<?php
$text = "Zoë";
$iso_text = utf8_decode($text);
echo bin2hex($iso_text);
?>Este código define una variable de cadena $text que contiene texto codificado en UTF-8. Luego utiliza la función utf8_decode() para convertir el texto a codificación ISO-8859-1 y almacena el resultado en $iso_text. Finalmente, imprime la representación hexadecimal del texto codificado en ISO-8859-1.
Valor de retorno y secuencias no válidas: La función devuelve la cadena convertida o false en caso de error. Si la entrada contiene secuencias UTF-8 no válidas, se reemplazan por un signo de interrogación (?).
Ejemplo 2: Conversión de texto codificado en UTF-8 desde XML
Supongamos que tienes un archivo XML con texto codificado en UTF-8 que deseas leer y convertir a codificación ISO-8859-1. Puedes usar la biblioteca SimpleXML de PHP para leer el archivo XML y la función utf8_decode() para convertir el texto, de la siguiente manera:
Conversión de texto codificado en UTF-8 desde XML en 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";
}Este código carga un archivo XML data.xml mediante la función simplexml_load_file() e itera sobre cada <code><item></code> elemento utilizando un bucle foreach. Dentro del bucle, utiliza la función utf8_decode() para convertir el texto codificado en UTF-8 de los elementos <code><title></code> y <code><description></code> a codificación ISO-8859-1, y almacena los resultados en dos nuevas variables $title y $description. Finalmente, imprime el texto codificado en ISO-8859-1 en la consola.
Para que este ejemplo funcione, data.xml debe contener una estructura como esta:
<root>
<item>
<title>Example Title</title>
<description>Example Description</description>
</item>
</root>Conclusión
En este artículo, hemos discutido la función utf8_decode() de PHP y cómo se puede utilizar para convertir texto codificado en UTF-8 a texto codificado en ISO-8859-1. Hemos explicado qué hace la función, su sintaxis y proporcionado ejemplos de cómo puede usarse en escenarios prácticos. Siguiendo estos ejemplos, puedes utilizar fácilmente utf8_decode() para convertir texto codificado en UTF-8 a codificación ISO-8859-1 y asegurarte de que tu texto se muestre o utilice correctamente en tu sistema.
Práctica
¿Qué hace la función utf8_decode en PHP?