2011-11-27 8 views
11

¿Cómo puedo cambiar la codificación predeterminada utilizada por $.post()?¿Cómo cambiar ajax-charset?

Los argumentos están codificados con UTF-8. ¿Cómo puedo codificarlo con ISO 8859-1?

Respuesta

8

que puede usar:

 
contentType:"application/x-javascript; charset:ISO-8859-1" 
+1

Es posible que también deba agregar un 'beforeSend': http://stackoverflow.com/a/14397845/92756 –

5

Al dar el tipo de contenido explícitamente durante la llamada AJAX como a continuación puede permitirle hacer prevalecer el tipo de contenido predeterminado.

$.ajax({ 
     data: parameters, 
     type: "POST", 
     url: ajax_url, 
     timeout: 20000, 
     contentType: "application/x-www-form-urlencoded;charset=ISO-8859-15", 
     dataType: 'json', 
     success: callback 
}); 

También debe especificar el juego de caracteres en el servidor.

Ej: para php

<?php header('Content-Type: text/html; charset=ISO-8859-15'); ?> 

Espero que esto pueda ayudar.

2

Parece el juego de caracteres no se puede cambiar más - $.ajax docs Unidos:

La especificación W3C XMLHttpRequest dicta que el juego de caracteres es siempre la codificación UTF-8; especificar otro juego de caracteres no forzará al navegador a cambiar la codificación.