2011-11-06 80 views
0

我有我的數據庫結果(áéíóúàâêô...),當我展示我得到任何的這個人物,如代碼:C#MVC3和非拉丁字符

á 

我的控制器是這樣的:

ViewBag.EstadosDeAlma = (from e in db.EstadosDeAlma select e.Title).ToList(); 

我CSHTML頁是這樣的:

var data = '@foreach (dynamic item in ViewBag.EstadosDeAlma){ @(item + " ") }'; 

另外,如果我使用任何富文本編輯器如微型MCE所有非拉丁茶賽事也是這樣。

我該怎麼做才能避免這個問題?

+0

á是重音字符的正確編碼,它應該在頁面上呈現OK。您是否在呈現給用戶的頁面上看到á或您在瀏覽器中查看源代碼? –

+0

我用jQuery自動完成,所以當我試圖找到葡萄牙語單詞「ágil」我不能,因爲實際上寫在á gil在html代碼... –

回答

0

你在網頁上使用了什麼輸出編碼?我建議使用UTF-8,因爲你想要很多非ascii字符的工作。

+0

你的意思是在我的HTML? –

+0

是的。這將在你的「母版頁」(佈局文件,viewstart等,我不知道你有你的HTML頭部分)。當然,你需要確保角色從數據庫正確地返回到你的.net應用程序...... –

0

我認爲在比較它們之前,應該對HTML進行編碼/解碼。

由於您使用的是jQuery,因此您可以利用內置的編碼函數。例如:

$('<div/>').html('& #225;gil').html() 

給你「AGIL」(請注意,我說的&和#使計算器不編碼它之間的額外的空間,你不會需要它)

這等問題有關於此的更多信息。 HTML-encoding lost when attribute read from input field