jquery Ajax响应char问题

时间:2011-03-08 11:36:56

标签: jquery character-encoding

通过jquery ajax函数,我从服务器检索数据。一切似乎都很好,但一些德国人的角色显示为'?' ,任何人都可以建议我如何解决这个问题。

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

2 个答案:

答案 0 :(得分:1)

contentType参数说明在将数据发送到服务器时如何编码data参数(您不使用的参数)。此外,在jQuery.ajax文档中描述contentType参数的部分中,您将找到:

  

数据将始终传输到   服务器使用UTF-8字符集;你必须   适当地解码这个   服务器端。

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

您可以在HTTP标头中明确设置类似

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

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

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

答案 1 :(得分:0)