Categories: JQuery - Tags: ajax, JQueryHace un tiempo escribí un post acerca de los acentos y caracteres especiales con AJAX y JQuery que explicaba como salvar este problema en los formularios enviados por AJAX.
El problema es que esta solución no abarca cuando con JQuery hacemos un .load() de información con AJAX y para variar nos salen cuadraditos o rombos negros con un signo de interrogación adentro. con caracteres como á, é, í, ó, ú ,Á, É, Í, Ó, Ú, ñ, Ñ ,º ,ö, Ö, ü, Ü, etc
Para salvar esto tan solo tenemos que configurar JQuery.ajax() de la siguiente forma:
1
2
3
4
5
6
|
$.ajaxSetup({
'beforeSend' : function(xhr) {
xhr.overrideMimeType('text/html; charset=iso-8859-1');
}
}); |
Con esa opción forzamos que el encabezado de respuesta sea iso-8859-1 y no UTF-8.
UPDATE:
Este método solo funciona con FF ya que IE no soporta xhr.overrideMimeType como bien comento Ignacio en los comentarios. Una forma de solucionar esto es hacer lo siguiente:
Modificar el codigo inicial
1
2
3
4
5
6
7
8
9
10
| $.ajaxSetup({
'beforeSend' : function(xhr) {
try{
xhr.overrideMimeType('text/html; charset=iso-8859-1');
}
catch(e){
}
}}); |
Y luego hay que agregar en nuestro archivo PHP
1
| <?php header( 'Content-type: text/html; charset=iso-8859-1' );?> |
Mandando el encabezado con PHP lograremos que funcione en IE. Un saludo , hagan pruebas y comenten que yo no tuve mucho tiempo.
UPDATE II:
Ignacio comenta que para ASP habria que usar el metodo :
Response.ContentType=”text/html; charset=iso-8859-1?
Un saludo espero que les haya servido de ayuda.