Si salen mal los caracteres de la base de datos mysql y en mysql tengo el mismo juego de caracteres (lo podemos ver a través de phpmyadmin) que en el origen entonces es cosa de los “locales” del servidor.
Los locales deben estar en UTF-8 es decir las variables LC_XXXX, comprobamos también que el servidor Apache tenga el UTF-8 activado. En el php.ini deberemos configurar:
default_charset = UTF-8
Para configurar los locales en Ubuntu ejecutamos:
#dpkg –configure locales
Para configurar el charset en Apache, editamos el archivo apache2.conf y observamos la línea:
AddDefaultCharset on //si esta línea existe Apache enviará iso-8859-1 entonces la solución es comentarla ó añadir la siguiente:
AddDefaultCharset UTF-8
Si usamos nuestros Content-types con su correspondiente charset, podemos deshabilitar tranquilamente la opción anterior.
Otra cosa que podemos hacer es asegurarnos de que el charset de mysql sea UTF-8:
shell> mysqld –default-character-set = UTF8
shell> vi /etc/mysql/my.conf
Añadimos estas líneas debajo de [mysqld]
#utf8
init-connect = ‘SET NAMES utf8′
character-set-server = utf8
collation-server = utf8_general_ci
Y con todo esto ya deberíamos haber solucionado el problema.
Computer
Dejar un comentario