2014-09-22 37 views
0

我的問題是,從我的控制器返回的通過JsonResult查看的單詞正在丟失其重音,而不是重音它正在轉換爲符號。如何從控制器返回帶有口音的字符串到通過Ajax查看JSon

這個詞「Finalizar_Saída」出現了這種錯誤=「Finalizar_Sa da」。

我最初的回電:

return Json(Object); 

我已經嘗試過這樣的事情:

Add in HTML page: 
< META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script src="@Url.Content("~/path/fileName.js")" type="text/javascript" charset="utf-8"></script> 

添加文件的javascript:

contentType: "application/json; charset=ISO-8859-1", 
dataType: "json", 

添加在web.config中這樣的文字:

<globalization culture="pt-BR" uiCulture="pt-BR" requestEncoding="iso-8859-1" responseEncoding="iso-8859-1" fileEncoding="iso-8859-1" /> 

<globalization enableClientBasedCulture="false" requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8" 
     responseHeaderEncoding="utf-8" enableBestFitResponseEncoding="true" culture="es-MX" uiCulture="es-MX"/> 

添加在C#:

我已經改變了回電話的是這樣的:

Json(Object, "application/json", Encoding.UTF8); 

難道有人知道一種方法算出這個?

+0

爲什麼不在contentType中使用utf-8?或者從contentType屬性中刪除charset = ISO-8859-1 – apros 2014-09-22 17:58:10

回答

0

對不起,問題不是呈現文本的方式,而是我閱讀信息的方式。

我正在從一個文件中讀取信息,在我們的例子中,這個文件是由log4net生成的文件。

的問題是,log4net的是在ANSI標準寫作,我們認爲這是UTF8標準,

的解決辦法是改變讀取模式使用以下調用ANSI標準:

Encoding.Default.GetString(buffer). 

現在它正在工作。

無論如何謝謝。

0

這是一個方式,不一定是偉大方式:

您可以使用HTML編碼存儲與所需字符的字符串可以發現

here

名稱將可能在代碼/數據庫中不再是人類可讀的,但應該在瀏覽器中正確顯示。你可以想象用UTF感知語言解析字符串,並使用它的本地編碼/解碼功能和正則表達式來代替unicode字符和HTML代碼,甚至可以在發送到客戶端AJAX請求之前即時完成。

相關問題