2012-06-08 14 views
3

我將JSON.stringify數據發佈到MVC動作,並且儘管在我的javascript中設置了編碼,但任何UTF字符都會通過損壞。這裏是我的jQuery的電話是什麼樣子:AJAX中的JSON,MVC3和UTF-8字符編碼

$.ajax({ 
    type: "POST", 
    url: BaseAppPath + "/Controller/Action", 
    dataType: "json", 
    contentType: "application/json; charset=utf-8", 
    data: JSON.stringify(jsonData), 
    success: function (data) { 
     // success code 
    }, 
    error: function (xhr, textStatus, errorThrown) { 
     // error code 
    } 
}); 

我的動作定義看起來是這樣的:

公共JsonResult ModifyTaskStatus(INT任務id,串注)

我對第一行設置斷點那個行動。那時候,「音符」參數中的字符就會被洗掉。一切都要等到斷點處理好字符。我需要做些什麼來確保我的行爲能夠正確地獲取漢字?

+0

增加

<globalization requestEncoding="utf-8" responseEncoding="utf-8"/> 

當然還要確保你的頁面有內容類型的標籤將自己拍攝一起來看看請求的POST數據與跟蹤工具(Firebug,IE開發工具欄,Chrome開發工具等)也許發佈結果和標題的屏幕截圖? – Steven

回答

0

首先想到的是,您的Web應用程序可能不會被設置爲相同的編碼。你的web.config中有元素嗎?如果不嘗試通過

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
+0

我有這兩個。我還嘗試了其他形式的編碼,但中文字符在動作的第一行仍顯示爲正方形。 – user623647