Problemas con CHARSET ISO-8859

eXtreM3

Wenas!! Me acaba de ocurrir algo que está fuera de mis conocimientos xD, se escapa a toda lógica.

Algo de historia: hace unos meses tenía el problema de que al cargar datos de una base de datos mediante php y mysql, al mostrarlos en la página web salían caracteres chungos. Por ejemplo palabras que tienen tilde, esa tilde las mostraba como una " ? " dentro de un circulito negro. Este problema, después de postearlo en mv, lo solucioné gracias a la respuesta de alguien (no me acuerdo) que consistía en poner esto:

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

(yo tenía <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />)

Salí más contento que unas pascuas de aquel "encontronazo" con las webs xD


Ahora mi presente problema:

Dispongo de un formulario, el cual tiene varios campos y 2 combos (select en html)

El primer combo carga todas las categorías de la base de datos a las que puede pertenecer un artículo. Una vez seleccionado algún valor, se autocompleta mediante ajax el segundo combo, con las subcategorías a las que puede pertenecer dicho artículo.

Dejo una screen orientativa:

El problema es, como podeis observar, que el primer combo lo carga correctamente (me refiero a las tildes), mientras que el segundo combo... me ocurre lo mismo que el primer problema que he comentado que tuve, las tildes las carga como una " ? " dentro de un círculo negro...

¿Qué puede estar pasando?

Graciassssss saludos ^^

suaveSHOW

El problema esta en que el select esta en el código fuente, deberías poner los acentos "manualmente"

á = &aacute;
é = &eacute;
í = &iacute;
ó = &oacute;
ú = &uacute;

Elektr0_ddr

Casi seguro que es por la llamada AJAX, mira a ver alguna opción para que te devuelva los datos en el CHARSET que desees, te estará devolviendo los datos probablemente en UTF-8 y tus METAS evidentemente se lo pasan por el forro.

Yo probaría eso

eXtreM3

#2 y #3 llevais razón... la consulta está en un .php que se llama mediante AJAX.

El input del primer combo es este:

<select name="categoria" id="categoria" class="datosTiendaInput" onchange="cargarCategorias();" />

cargarCategorias() es esto:

Codigo

y en ajax_categorias.php es donde hago la consulta, que efectivamente... es retornada como UTF-8 y no sé cómo cambiarlo :S estoy rayao, igual es que ahora estoy embotao y no lo veo...

EDIT: desde la ignorancia... creo que el truco está aquí

$('#subcategoria').html(responseText);

Hay alguna manera de poner eso para que me devuelva bien la cadena??

#5 lo he probado, y se lo pasa por el forro xD

Elektr0_ddr

en la funcion $.post() puedes pasarle un parámetro para especificar el tipo de la respuesta, es ahí donde puedes decirle que te lo devuelva codificado en el charset que necesites.

A ver si veo algun ejemplo en jQuery...

Edit: también puedes especificar un charset para el .php al que llamas mediante la función post(), si no lo habías probado ya.

eXtreM3

Manda wevos... todo por un detallito que ha sido a base de probar y probar y probar...

Había puesto el charset en el archivo .php ... como si de un html se tratase (vaya, poniéndolo correctamente, la sintaxis estaba bien)

Googleando he encontrado que también se puede poner así:

<?PHP
	header("Content-Type: text/html; charset=iso-8859-1");
?>

#5 me has ayudao ;) sin esa ayuda no habria sio capaz de encontrarlo, estaba negao xD, thanks!!!!

Usuarios habituales

  • eXtreM3
  • Elektr0_ddr
  • suaveSHOW