# Problemas con ñ y acentos con Apache + PHP 5 + Mysql

## dandy_loco

Saludos,

Primero deciros que he leido bastante documentación por internet pero no han resuelto mi problema. Os cuento.

Cuento con dos servidores. En uno de ellos tengo instalado MySQL con la base de datos en UTF-8 y con colación utf8_general_ci. Por otro lado tengo el otro servidor con apache2 más php5.

Como por defecto el php trae como "charset" ISO 8859-1 cuando obtengo resultados de una sql hecha al MySQL los caracteres 'ñ' y los acentos no se me visualizan correctamente, a pesar que en la base de datos si están correctamente.

Si por el contratio defino en el archivo de configuracion de apache (http.conf) el charset con:

 *Quote:*   

> AddDefaultCharset utf-8

 

Efectivamente se soluciona este problema, pero sin embargo los acentos y las 'ñ' del codigo propio del php no se visualizan correctamente.

He probado a añadir en el archivo php:

 *Quote:*   

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

 

Pero no ha funcionado. Tambén he intentado modificar el .htacces pero con igual resultado.

He leido documentacion de MySQL sobre el conjunto de caracteres y la colaión del servidor. Actualmente tengo una colacion de utf8_general_ci. Habia pensado cambiarlo a utf8_spanish_ci, pero la verdad es que no tengo la seguridad que valla a resolver mi problema.

En PHP hay unas funciones utf8_encode utf8_decode pero, salvo que no quede mas remedio que tocar los código fuentes, preferia no usarlas.

Por favor necesito una ayudita.Gracias por su tiempo. Un saludo

----------

## dandy_loco

Me respondo a mi mismo jejeje. Cuando establezco la conexion en PHP añado:

 *Quote:*   

> <?
> 
>     mysql_query("SET CHARACTER SET latin1");
> 
>     mysql_query("SET NAMES latin1");
> ...

 

Mano de santo. Un saludo

----------

## inconexo

El maravilloso mundo del UTF8 :)

Parece que quieres devolver los caracteres como ISO-8859-1: perfecto entonces tu solucion; pero si lo que quieres es tener todo en UTF8, deberas hacer lo siguiente:

- las bases de datos deberan ser UTF8, es decir, los con datos convertidos a UTF8(*) y las tablas IDEM (DEFAULT CHARSET=utf8 despues de la definicion de cada tabla) 

- la primera query despues de conectar con la base de datos debe ser "SET NAMES 'utf8'"

- las cabeceras de las paginas debe ser <meta http-equiv=Content-Type content=text/html; charset=utf-8″ />

- el propio codigo fuente debe ser UTF8(*)

Mucha suerte y paciencia... no es una tarea facil!

Un saludo!

(*) para pasar un volcado de la base de datos o los codigos fuentes a UTF8 es necesario un "recode iso-8859-1..utf8 <nombre fichero>" (dentro de app-text/recode)

----------

## dandy_loco

Muchas Gracias por la respuesta.

Un saludo

----------

