Portada » Lenguaje PHP » Solución para las tildes y eñes PHP MYSQL

Solución para las tildes y eñes PHP MYSQL

Solución para las tildes y eñes PHP MYSQL. En algunas ocasiones los caracteres especiales del idioma español pueden resultar un dolor de cabeza a la hora de realizar consultas en la base de datos Mysql. Si utilizas PHP como conexión ya en algún momento debes haber tenido este tipo de inconveniente y quizás aún no.

Solución para las tildes y eñes PHP MYSQL

Escribir en español con «eñes» y tildes es muy fácil llenar los formularios con tildes y eñes, pero cuando te devuelve unos caracteres medios raros ahí viene el detalle, para evitar todo ello debes tener un CHARSET y una COLLATION que lo permitan.

Yo uso charset utf8 en los archivos PHP y HTML y collation utf8_general_ci en MYSQL, pero seguro que lo logras con el CHARSET latin1 y la collation latin1_spanish_ci. No puedes aplicar a las tablas y a los campos una collation que no tenga nada que ver con el charset elegido.

Pero este no es el único problema en tu página. También tienes que hacer que se entiendan tu servidor web APACHE y tu base de datos (MYSQL). Por otro lado, es importante que los datos que muestras de tu base de datos, los visualizas en un archivo PHP o HTML, todo tiene que ser relativo, si eliges UTF8, tu navegador debe tener seleccionado un tipo de letra utf8.

Solución para las tildes y eñes PHP MYSQL

HTML CHARSET

<html><head>
<meta charset="UTF-8">
</head> 
<body>
</body>
</html>

PHP

<?php 
header('Content-Type: text/html; charset=UTF-8');  
?>

En las consultas de PHP con MYSQL

Les comento si has elegido un charset  y su cotejamiento (collation) adecuado para el español, el detalle seria comunicar a tu servidor  de esto, pues creo que trabaja por defecto con ISO-8859-1.

Además con unos meta que indiquen el charset y guardando los archivos php y html como utf8, en caso de que sea ese el charset elegido, se resolverá parte del problema.

Al realizar la conexion, inmediatamente despues realiza esta consulta

mysql_query("SET NAMES 'utf8'",$conexion);

o en caso que uses mysqli

mysqli_query("SET NAMES 'utf8'",$conexion);

Pasos  para solucionar las tildes y eñes.

Para el tema de las tildes y eñes con base de datos hay que ver 3 detalles que debemos de configurar.

Revisar el fichero de conexión con MySQL

Generalmente se debe declarar la conexión con UTF8, veamos un ejemplo:
// conexión a la base de datos
function connect(){
return new mysqli("localhost","USER","PASSWORD","BASE_DE_DATOS");
}
$con = connect();

// AGREGANDO CHARSET UTF8
if (!$con->set_charset("utf8")) {
    printf("Error al cargar el conjunto de caracteres utf8: %s\n", $con->error);
    exit();
} else {
    printf("Conjunto de caracteres actual: %s\n", $db->character_set_name());
}

La base de datos: cotejamiento ( utf8mb4_unicode_ci )

La base de datos, las tablas y las columnas de tipo texto debe de tener este cotejamiento para que acepte las tildes sin problemas.
utf8mb4_unicode_ci usa el Algoritmo de clasificación Unicode como se define en los estándares Unicode.
Solución para las tildes y eñes
Solución para las tildes y eñes

Modificar los archivos (último paso)

A veces no es necesario, pero me ha pasado y ya lo he visto en proyectos anteriores.

Los archivos que interactúan con MySQL para devolver la información debe tener como tipo de archivo UTF8 (Esto se puede cambiar al editar el archivo con cPanel).

Veamos un ejemplo.

Cambiar tipo de codificacion de archivo UTF-8
Cambiar tipo de codificacion de archivo UTF-8

Cuando un fichero por más que hemos realizado los dos pasos anteriores en MySQL y sigue mostrando caracteres especiales. Sin embargo, ya por ultimo debemos de corregir el tipo de codificación de carácter para el fichero.

  • Editar el fichero
  • Eligir el tipo de codificación UTF-8
  • Luego guardar el fichero.

Con esto nuestro fichero tendrá el tipo UTF-8 y el problema se habrá resuelto.

Conclusión

Con este artículo hemos aprendido a dar solución a los problemas con las tildes y «ñ» (eñes) cuando trabajamos con base de datos (MySQL).

Hemos presentado 3 configuraciones para no tener estos inconvenientes con los caracteres especiales en la web.

Espero que estos ejemplos les ayude en sus proyectos webs, cualquier duda pueden escribir en los comentarios.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 5 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio
Esta web utiliza cookies propias para su correcto funcionamiento. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Privacidad