我在ASP.NET MVC應用程序中有一個textarea,用戶可以輸入一些文本。當我向用戶顯示文本時,我使用Html.Encode
來防止惡意輸入。問題是用戶可以輸入西班牙語,也許他輸入año
,Encode
將其轉換爲año
。我如何防止這種情況?爲安全編碼HTML輸入時,如何避免編碼國際字符如Ñ或ñ?
編輯:在生成的HTML,我看到:
<a href="a1-'a1'-Cama&#241;o?sort=estadisticas#241;o">a1 'a1' Cama&#241;o</a>
在頁面我都這樣了,這時候顯示是正確的後來:
<b>a1 'a1' Camaño</b>
首先是生成此方法:
<%= Html.RouteLink(Html.Encode(Model.NAME), ...... %>
和第二這樣的:
<%= Html.Encode(Model.NAME)%>
所以我的猜測是問題是與Html.RouteLink
。
您的抱怨是編碼國際字符,還是用戶看到編碼的字符而不是他們輸入的字符?如果是後者,那麼「偶然編碼兩次」的答案是正確的。如果沒有,請告訴我們。 – Eddie 2009-03-04 17:29:23