Saltar al contenido

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

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
<?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

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:

xml
<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?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.