jquery Ajax响应char问题

jquery Ajax响应char问题

问题描述:

通过jquery ajax函数,我正在从服务器中取回数据。一切似乎都很好,但一些德语字符显示为'?' ,任何人都可以建议我如何解决这个问题。jquery Ajax响应char问题

$.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); 
    } 
    } 
    }); 

contentType参数说怎么当数据被发送到服务器的data参数(你不能使用)将被编码。此外,在描述contentType参数jQuery.ajax文档的一部分,你会发现:

数据总是使用UTF-8字符集传送到 服务器;您必须 在 服务器端正确解码。

因此,您应该检查服务器响应的HTTP标头Content-Type。您可以使用FiddlerFirebug

您可以明确地设置在HTTP头像

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

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

呼叫应在服务器上完成,因此取决于您所使用的技术。