2010-02-23 198 views
0

我將XHTML作爲文本存儲在搜索索引中。一旦用戶提交了搜索請求,我將這些文本插入到我的頁面中並將其返回給服務器。除文本中有ISO 8859-1 Symbol(例如版權標記©)外,這一切都可以正常工作。該符號在瀏覽器中未正確表示,它顯示爲實體編號(©版權符號爲©),並且不顯示爲符號。特殊html字符在瀏覽器中無法正確顯示

如果我將XHTML複製並粘貼到一個靜態網頁並在瀏覽器中查看它,則該符號將被正確渲染。

當我查看源代碼時,在上述兩種情況下我都看到相同的文本字符串。

你能告訴我發生了什麼事,我該如何解決。

我使用ASP.NET MVC 2,用下面的代碼添加的.ascx頁面,我的模型是一家集Ø串,每拿着一塊XHTML裏面的XHTML:

<%foreach(string s in ViewData.Model) {%> 
    <%= s %> 
    <%} %> 
<% 

謝謝您的幫助!

CoderGeek

回答

1

您需要HTML編碼字符串,以便正確地使其:

<%= Html.Encode(s) %> 

,或者如果你正在使用ASP.NET 4,你可以採取新的code nugget快捷的優勢:

<%: s %> 
+0

謝謝,但這不是我想要做的。我想呈現html,而不是渲染html的文本表示。我的html呈現很好,除了這些特殊字符。 – Barka 2010-02-23 19:50:52

0

您需要對html輸入進行編碼,以便copyrigth符號是©或© 這將然後輸出作爲HTML編碼或您可以HTML解碼!將其恢復到原始狀態

+0

lol應該&#1 6 9; (作爲一個字符串,但什麼你知道它的HTML編碼笑 – davethecoder 2010-02-24 00:36:00

+0

感謝 爲了讓瀏覽器顯示&#169;而不是©類型,而沒有空間下列事項:; 沒有輸入到 & amp;#169所有這些都來自我的服務器,並且所有顯示都正確(xhtml呈現正確 - 即,html元素被呈現),除了符號外 謝謝! – Barka 2010-02-24 05:19:56

相關問題