2010-08-14 6 views
0

J'accède à des données à partir d'une base de données SQL Server à mon site Web ASP.Net C#. Ces données sont reçues de sociétés affiliées et contient £ pour le signe £. Mais quand je montre ces données à l'intérieur d'une étiquette, au lieu de £ il montre £.Difficultés de codage: & # 163; affichage au lieu de £

Remarque: Le & est converti en &.

Je sais que c'est un problème de codage de caractères et j'ai essayé de fournir le codage de caractères comme 'utf-8' et aussi 'ISO-8859-1' dans l'en-tête.

Quel encodage de caractères dois-je utiliser pour résoudre le problème?

Répondre

2

Ce n'est pas un problème de trouver le codage de caractères correct pour transformer les octets en texte, c'est comment le texte a été codé (ou plutôt échappé).

Le problème est que le texte a été codé en HTML deux fois. La première fois, il transforme le £ en £, la deuxième fois en £. Donc, pour corriger cela, vous devez utiliser la méthode HtmlDecode pour inverser la deuxième étape.

+0

merci, je vais essayer. – Anchit

+0

Toutefois, l'étiquette qui affiche les données se trouve dans le modèle d'élément d'une vue quadrillée: alors comment puis-je mettre la fonction HtmlDecode là? Désolé de poser des questions novices Je ne suis qu'un débutant. – Anchit

+0

Vous ne pouvez pas lier la propriété si vous souhaitez modifier la valeur avant de l'afficher, utilisez 'Eval' à la place:' Text = '<% # HttpUtility.HtmlDecode (Eval ("Gift"))%>' ' – Guffa

2

& amp; # 163 si doit être # 163. En utilisant l'ampli &; vous avez échappé au code d'échappement HTML.

+0

probablement oui, c'est le cas, mais ai-je une solution pour résoudre le problème? : \ Je ne peux certainement pas changer les données dans la table, donc je devrais trouver une solution à la fin de l'application. – Anchit

+0

On dirait qu'il a été codé en HTML deux fois. Par conséquent, peut-être vous pouvez simplement HTML-décoder deux fois? (HttpUtility.HtmlDecode) –

+0

Mais l'étiquette est dans le itemtemplate d'un gridview, la voici: Alors, comment puis-je appliquer htmldecode? :/ – Anchit

2

Il semble être codé deux fois et décodé une seule fois. Quel a été le passage?