[C#] Convertir caractères spéciaux HTML

Convertir caractères spéciaux HTML [C#] - C#/.NET managed - Programmation

Marsh Posté le 04-07-2009 à 18:43:17    

Bonjour,
je butte sur un problème apparemment simple.
Je grab des page web et j'ai parfois des caractères spéciaux qui apparaissent du genre &amp
 
Voici ma fonction qiu récupère une page web :
 

Code :
  1. public string DlHtml(string url)
  2.         {
  3.             WebRequest request = WebRequest.Create(url);
  4.             WebResponse response = request.GetResponse();
  5.             StreamReader sr = null;
  6.             string res;
  7.             try
  8.             {
  9.                 sr = new StreamReader(response.GetResponseStream(), Encoding.UTF7);
  10.                 return sr.ReadToEnd();
  11.             }
  12.             catch
  13.             {
  14.                 return null;
  15.             }
  16.             finally
  17.             {
  18.                 res = sr.ToString();
  19.                 if (sr != null) sr.Close();
  20.             }
  21.             return null;
  22.         }


 
J'ai essayé à peu près tous les "Encoding" possible mais rien à faire.
Comment les convertir en caractères "normaux" ?
merci


Message édité par fffff2mpl4 le 04-07-2009 à 18:43:33
Reply

Marsh Posté le 04-07-2009 à 18:43:17   

Reply

Marsh Posté le 04-07-2009 à 20:13:51    

C'est bon j'ai finalement trouvé.
Il faut utiliser HttpUtility.HtmlDecode dans System.Web

Reply

Marsh Posté le 04-07-2009 à 20:14:11    

L'encoding au sens où tu l'entends n'a rien (mais alors rien de rien) à voir avec les entités HTML !!
pour décoder tes chaînes vois du côté de HttpUtility.HtmlDecode et/ou HttpServerUtility.UrlDecode (ou quelque chose dans le genre, google est ton ami).
Sache cependant que tu ne pourras pas toutes les traiter comme ça et qu'au final tu pourrais avoir à implémenter ta propre fonction de conversion, sachant qu'on en trouve déjà des exemples bien foutus sur le net.

 

edit : grillé :D

Message cité 1 fois
Message édité par TotalRecall le 04-07-2009 à 20:14:27

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 04-07-2009 à 20:20:26    

Bah merci quand même !
Je suis un peu newbi en programation...

Reply

Marsh Posté le 06-07-2009 à 09:36:47    

TotalRecall a écrit :

L'encoding au sens où tu l'entends n'a rien (mais alors rien de rien) à voir avec les entités HTML !!
pour décoder tes chaînes vois du côté de HttpUtility.HtmlDecode et/ou HttpServerUtility.UrlDecode (ou quelque chose dans le genre, google est ton ami).
Sache cependant que tu ne pourras pas toutes les traiter comme ça et qu'au final tu pourrais avoir à implémenter ta propre fonction de conversion, sachant qu'on en trouve déjà des exemples bien foutus sur le net.
 
edit : grillé :D


 
Par curiosité, pourquoi il ne pourras pas toutes les traiter comme ça ?  :??:  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed