Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/07/2009, 07:35
vega22
 
Fecha de Ingreso: septiembre-2007
Mensajes: 99
Antigüedad: 17 años, 4 meses
Puntos: 0
Otra de problemas con caracteres especiales

No sé muy bien en qué subforo plantear este problema, así que empiezo por aquí y si alguien me recomienda postear en otro lado, así lo haré.

El tema es que tengo un enredo curioso con el tema del charset en la web. Lo primero es decir que la web está servida desde un IIS 6 en Windows 2003, y que la codificación de la mayor parte de ella es ISO-8859-1. Por ahí, todo perfecto. Las Mysql asociadas a estas páginas está en charset Latin1, collate Latin1-swedish.ci, lo típico.

El problema viene con un blog wordpress que he metido dentro de la web, como un apartado más, y he puesto en utf8. La Mysql asociada con él está en charset utf8, collate utf8_spanish2_ci. Pues bien, todos los caracteres especiales que llegan desde la Mysql son mostrados por los navegadores correctamente (por supuesto el charset declarado de todas las páginas es utf8), pero los que escribo a mano en las páginas no. Tengo que usar codificación html para ellos. Si subo páginas de prueba al servidor (uso para ello DW) sin los caracteres especiales codificados, en puro estilo utf8, los navegadores las leen perfecto. Pero si mezclo en las páginas datos llegados desde la Mysql y escritos directamente, estos últimos los tengo que codificar.

Me he fijado en la base de datos cómo está guardando los caracteres y los guarda codificados. No en la codificación habitual 'á', sino con símbolos muy raros.

En fin, para resumir, lo que ocurre es esto:

-La Mysql está guardando codificados los caracteres especiales que le llegan desde el wordpress, estando todo, el blog y la base, perfectamente seteado a utf8.
-Las páginas subidas en utf8 que no importan datos desde la BD se leen sin problemas sin codificar ni tildes ni eñes.
-Las páginas que mezclan caracteres especiales escritos a mano con los llegados desde la BD, precisan codificar los primeros.
-El código fuente de los datos procedentes desde la BD que muestran los navegadores carece de caracteres codificados. Aunque estén en la BD codificados, el código fuente los escupe sin codificar, o sea, á, ñ, etc. Son mostrados al público correctamente.
-Sin embargo, si no codifico los otros caracteres, los que están metidos a mano, en las páginas, el texto que llega desde la BD se ve, en vista de código fuente, con los caracteres especiales codificados, exactamente como se ven guardados en la BD. Los navegadores sin embargo los muestran al público también en este caso correctamente.

Perdón por el tostón y espero que se comprenda lo que quiero decir.
Gracias por alguna luz que me ayude a resolver este galimatías...

Última edición por vega22; 21/07/2009 a las 07:41