Ho un'area di testo in un'applicazione ASP.NET MVC in cui l'utente può digitare del testo. Quando mostro il testo all'utente, utilizzo Html.Encode
per impedire l'input dannoso. Il problema è che l'utente può digitare in spagnolo e forse digita año
e lo Encode
lo trasforma in año
. Come posso evitare questo?Quando si codifica l'input HTML per sicurezza, come evitare di codificare caratteri internazionali come Ñ o ñ?
EDIT: Nel codice HTML generato, vedo questo:
<a href="a1-'a1'-Cama&#241;o?sort=estadisticas#241;o">a1 'a1' Cama&#241;o</a>
Più tardi nella pagina ho questo, e questa volta il display è corretto:
<b>a1 'a1' Camaño</b>
Il primo viene generato questo modo:
<%= Html.RouteLink(Html.Encode(Model.NAME), ...... %>
e la seconda simili:
<%= Html.Encode(Model.NAME)%>
Quindi la mia ipotesi è che il problema sia con lo Html.RouteLink
.
Il tuo reclamo riguarda la codifica di caratteri internazionali o la visualizzazione di caratteri codificati dell'utente anziché dei caratteri digitati? Se è il secondo, allora la risposta "encoding twice accidentally" è corretta. In caso contrario, faccelo sapere. – Eddie