utf8_decode

(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

Descripción

utf8_decode(string$string): string

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 similar Windows-1252, y los navegadores web interpretarán las páginas web ISO-8859-1 como Windows-1252. Windows-1252 presenta caracteres imprimibles adicionales, como el signo del euro () y las comillas rizadas (), en lugar de ciertos caracteres de control de ISO-8859-1. Esta función no convertirá correctamente estos caracteres de Windows-1252. Utilice una función diferente si se requiere la conversión de Windows-1252.

Parámetros

string

Un string codificado en UTF-8.

Valores devueltos

Devuelve la traducción ISO-8859-1 del string.

Historial de cambios

VersiónDescripció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.

Ejemplos

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

Ver también

To Top