2010-05-19 5 views
4

Je sais que le symbole monétaire EURO (€) est codé en € en HTML, mais le System.Web.HttpUtility.HtmlEncode("€") ne l'encodage pas du tout. Est-ce que quelqu'un sait pourquoi c'est?ASP.NET Server.HtmlEncode Wont Encode €

+0

@Daniel Je baisserais votre commentaire pour être ignorant (même si vous plaisantez) Malheureusement je ne peux pas – Felix

+4

Je n'ignorais pas. pensais que j'étais irrévérencieuse et un peu désagréable, mais si j'étais ignorant alors je suis ignorant de ce que j'étais ignorants au sujet. –

Répondre

6

HttpUtility.HtmlEncode encode uniquement les caractères qui sont « réservés » au format HTML. Pour cette liste, voir la première table sur cette page: http://www.w3schools.com/tags/ref_entities.asp.

En d'autres termes, seuls les caractères qui peuvent entrer en conflit avec l'structre base du langage HTML (par exemple <,>, », etc.). Aucun autre caractère doivent être codés tant que le codage des octets transmis est identifié correctement (par exemple en utilisant et en déclarant UTF-8)

+0

Etes-vous sûr que cela est vrai? J'utilise HtmlEncode, et il est des symboles de degré d'encodage dans °, mais il ne code pas les symboles de marque. Je comprends ce que vous dites, mais il semble appliquer le choix de codage de manière incohérente. Je ne pense pas que les symboles de degré sont réservés en HTML. – HBlackorby

+0

j'ai eu tort quand j'ai écrit la réponse il y a 2,5 ans, ou ASP.NET peut avoir changé. Je n'ai pas utilisé ASP.NET récemment, donc je ne peux pas confirmer ou infirmer cette possibilité. Si vous avez le temps, je vous encourage à la recherche et à écrire ici un plus précis et à jour réponse. –