(PHP 4, PHP 5, PHP 7, PHP 8)
utf8_decode — Convierte un string desde UTF-8 a ISO-8859-1, sustituyendo los caracteres no válidos o no representables
Esta función convierte el string string
desde la codificación UTF-8
a ISO-8859-1
. Los bytes del string que no son UTF-8
válidos, y los caracteres UTF-8
que no existen en ISO-8859-1
(es decir, los puntos de código superiores a U+00FF
) se sustituyen por ?
.
Nota:
Muchas páginas web marcadas con la codificación de caracteres
ISO-8859-1
utilizan en realidad la codificación similarWindows-1252
, y los navegadores web interpretarán las páginas webISO-8859-1
comoWindows-1252
.Windows-1252
presenta caracteres imprimibles adicionales, como el signo del euro (€
) y las comillas rizadas (“
”
), en lugar de ciertos caracteres de control deISO-8859-1
. Esta función no convertirá correctamente estos caracteres deWindows-1252
. Utilice una función diferente si se requiere la conversión deWindows-1252
.
string
Un string codificado en UTF-8.
Devuelve la traducción ISO-8859-1 del string
.
Versión | Descripción |
---|---|
7.2.0 | Esta función ha sido trasladada de la extensión XML al núcleo de PHP. En versiones anteriores, sólo estaba disponible si la extensión XML estaba instalada. |
Ejemplo #1 Ejemplos básicos
<?php
// Convertir el string 'Zoë' desde UTF-8 a ISO 8859-1
$utf8_string = "\x5A\x6F\xC3\xAB";
$iso8859_1_string = utf8_decode($utf8_string);
echo bin2hex($iso8859_1_string), "\n";
// Las secuencias UTF-8 no válidas se sustituyen por '?'
$invalid_utf8_string = "\xC3";
$iso8859_1_string = utf8_decode($invalid_utf8_string);
var_dump($iso8859_1_string);
// Los caracteres que no existen en ISO 8859-1, como
// '€' (signo del euro) también se sustituyen por '?'
$utf8_string = "\xE2\x82\xAC";
$iso8859_1_string = utf8_decode($utf8_string);
var_dump($iso8859_1_string);
?>
El resultado del ejemplo sería:
5a6feb string(1) "?" string(1) "?"