我在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