Problemas con UTF8

Esta vez me ocurrió un problema con una página web que tengo que administrar, resulta que al mostrarse en el navegador me estaba reemplazando las tildes y las “ñ” con caracteres raros, después de una larga investigación y tras probar infinidad de métodos lo único que me funcionó fue lo siguiente:

Primero cambiar el set de caracteres de mi base de datos(MYSQL) a utf8_unicode_ci, tambien se puede utilizar utf8_general_ci, luego de eso tengo que cambiar el encabezado de mis archivos de la página web para que trabajen con utf8:

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

Al principio pensaba que con eso era suficiente pero seguía con el mismo error, ¿Qué cosa me faltaba?, navegando en la red encontré que después de hacer la conexión tenia que decirle a mis consultas que usen utf8, para eso tengo que añadir lo siguiente:

mysql_query (“SET NAMES ‘utf8′”);

Debo recordar que esto se hace después de establecer la conexión y antes de realizar cualquier consulta.

Ya con esto tengo el problema solucionado y puedo visualizar mi web sin ningún problema. Pero si tambien deseamos cambiar la codificacion de nuestros ficheros fuente de ISO 8859-1 a UTF-8 podemos hacer un script como este para linux:

#!/bin/bash
for i in `find -name ‘*.php’`
do
iconv -f ISO_8859-1 -t UTF-8 $i > tmpfile
mv -f tmpfile $i
done

Lo corremos y comprobamos que el cambio ha sido realizado con el siguiente comando:

 file -i nombre_archivo

El cual nos muestra las características detalladas del archivo.

Saludos y hasta la victoria siempre.

Anuncios

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 )

Google+ photo

Estás comentando usando tu cuenta de Google+. 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 )

Conectando a %s