EXTENSIÓN ICONV EN PHP
La extensión iconv en PHP permite la conversión de cadenas entre diferentes conjuntos de caracteres. Esto es útil cuando trabajas con textos que provienen de distintas codificaciones y necesitas normalizarlos. El siguiente ejemplo convierte una cadena desde UTF-8 a ISO-8859-1:
// Cadena en UTF-8
$cadena_utf8 = 'Hola, mundo! ¿Cómo estás?';
// Convertir de UTF-8 a ISO-8859-1
$cadena_iso = iconv('UTF-8', "ISO-8859-1//TRANSLIT", $cadena_utf8);
if ($cadena_iso === false) {
echo 'Error en la conversión.';
} else {
echo 'Cadena original (UTF-8): $cadena_utf8';
echo 'Cadena convertida (ISO-8859-1): $cadena_iso';
}
$cadena_utf8 = 'Hola, mundo! ¿Cómo estás?';
// Convertir de UTF-8 a ASCII (puede fallar con caracteres especiales)
$cadena_ascii = @iconv('UTF-8', "ASCII//TRANSLIT", $cadena_utf8);
if ($cadena_ascii === false) {
echo 'La conversión falló.';
} else {
echo 'Cadena convertida a ASCII: $cadena_ascii';
}
// Texto original en UTF-8
$texto_original = '¡Hola! Esto es un ejemplo de conversión.';
// Convertir a ISO-8859-1
$texto_iso = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $texto_original);
echo 'ISO-8859-1:' . $texto_iso;
// Convertir a ASCII
$texto_ascii = iconv("UTF-8", "ASCII//TRANSLIT", $texto_original);
echo 'ASCII: $texto_ascii';
// Convertir de vuelta a UTF-8
$texto_utf8 = iconv('ISO-8859-1', 'UTF-8', $texto_iso);
echo 'De vuelta a UTF-8:' . $texto_utf8;
- Si el conjunto de caracteres de la cadena no coincide con el especificado en from_encoding, la conversión podría generar errores o resultados inesperados.
- Asegúrate de que las codificaciones utilizadas sean compatibles con el texto.
//Cadena
$cadena = 'Hola, ¿qué tal?';
$encoding = mb_detect_encoding($cadena, 'UTF-8, ISO-8859-1, ASCII', true);
echo 'La cadena está en:' . $encoding;