Correción de los Acentos en PHP y MySQL

Bueno va mi primer post, espero que se de mucha utilidad. Resulta que los que nos gusta o tenemos la necesidad de hacer algún sistemita en PHP y MySQL, en ocasiones, los acentos o caracteres de código ascii extendido como la ñ,?,<>, … no se muestran bien o no se guardan como deben ser, cuando se registran desde PHP, por ejemplo un sistema donde se tenga que registrar los comentarios de los visitantes, o un sistema para registrar personas, etc.

El detalle en este problemilla radica en el tipo de codificación que utilizan en el encabezado de la pagina PHP y el de MySQL, a lo que llamamos comúnmente “char set” o conjunto de caracteres, en espanish, MySQL comúnmente utiliza para el Cliente, o sea la consolita, utf8 y para las bases de datos latin1, bueno tonces vamos a ver como darle solución.

Si buscan en san google van a encontrar que esto se puede solucionar colocando la codificación utf8 al encabezado HTML, pero aquí va una solución, que desde hace un buen rato me ha funcionado a la perfección.

Pa los que trabajan Dreamweaver, like me, si le dan crear un nuevo documento html observarán que en el encabezado aparece la siguiente linea de código:

<meta http-equiv=”Content-Type” content=”text/html; charset=windows-1252″ />

Esta linea indica el conjunto de caracteres que la pagina va a utilizar, bueno en esta tenemos que modificar el valor de charset por “iso-8859-1”. Al final debe quedar así:

<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″ />

Esto es en la parte de PHP, ahora vamos a MySQL. Cuando creamos nuestra base de datos por lo regular la hacemos de la siguiente manera:

Create database MiBasesita;

Si ya tenemos creada la base de datos, entonces escribimos la siguiente linea para modificar el charset de la base de datos:

alter database MiBasesita default character set utf8 collate utf8_general_ci;

Con eso modificaran el conjunto de caracteres de la base de datos, recuerden que por default MySQL le asigna latin1.

Ahora al imprimir el resultado de alguna consulta les recomiendo que utilicen la función htmlentities();

Espero y les funcione, Suerte…

Un pensamiento en “Correción de los Acentos en PHP y MySQL

  1. La función que has recomendado usar, la de “htmlentities()” me ha solucionado lo que buscaba… que a pesar de cambiar el meta en el encabezado de la web y el alter en la bbdd había alguna palabreja en la web que salía descodificada, pero ya está solucionado. Gracias!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s