2011-03-08 152 views
1

通過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); 
    } 
    } 
    }); 

回答

1

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"); 

呼叫應在服務器上完成,因此取決於您所使用的技術。