2011-03-08 5 views
1

Grâce à la fonction jquery ajax, je récupère des données du serveur. tout semble bien, mais un caractère allemand affichant comme «? , Quelqu'un peut-il me suggérer comment résoudre ce problème.jquery Ajax réponse char problème

$.ajax({ 
    type: "GET", 
    cache: false, 
    dataType: "json", 
    contentType: "application/json; charset=iso-8859-1", 
    url: url, 
    async: true, 
    timeout: timeOut, 
    success: function (data, status) 
    { 
    if (status == "success") 
    { 
    displayHotelDetails(data); 
    } 
    } 
    }); 

Répondre

1

Le contentType paramètre dire comment le paramètre data (qui ne vous utilisez) sera codé lorsque les données sont envoyées au serveur. En outre, dans la partie de la documentation jQuery.ajax qui décrit le paramètre contentType vous trouverez:

Les données seront toujours transmises au serveur en utilisant charset UTF-8; vous devez le décoder correctement sur le côté serveur .

Vous devriez donc probablement examiner l'en-tête HTTP Content-Type de la réponse du serveur. Vous pouvez utiliser Fiddler ou Firebug.

Vous pouvez définir explicitement le dans quelque chose d'en-tête HTTP comme

response.setHeader("Content-Type", "application/json; charset=ISO-8859-1"); 

ou

response.setContentType("application/x-json"); 
response.setCharacterEncoding("ISO-8859-1"); 

L'appel doit être fait sur le serveur et donc dépendent de la technologie que vous utilisez.