Désencoder du HTML-encoded

Désencoder du HTML-encoded - C#/.NET managed - Programmation

Marsh Posté le 29-09-2005 à 10:20:29    

Bonjour,
 
Voici le kanji de la femme : 女.
Moi en fait pour l'instant, il est encodé de cette façon dans mon fichier : #22899 (avec un & devant et un ; derrière).
 
J'aimerais donc décoder tout cela ! J'ai vu à plusieurs endroit en cherchant qu'il fallait utiliser  HttpServerUtility.HtmlDecode, mais je n'ai pas de System.Web.HttpServerUtility dans mon .NET ! Je me demande où il trouve ça... alors sûrement c'est quelquechose que je n'ai pas, à télécharger, ou alors uniquement en ASP... je sais pas :)
 
Merci de votre aide !


Message édité par TigrouMeow le 29-09-2005 à 10:48:16
Reply

Marsh Posté le 29-09-2005 à 10:20:29   

Reply

Marsh Posté le 01-10-2005 à 13:37:08    

Personne ne sait ? :'(

Reply

Marsh Posté le 04-10-2005 à 15:45:06    

Si si, ça marche bien.
 
Si tu utilises VS.Net : il doit te manquer la référence à System.Web à ton projet.
Une fois que c'est fait, tu peux utiliser
System.Web.HttpUtility.HmltDecode  et  System.Web.HttpUtility.HmtlEncode
 
Pas besoin d'être en ASP.Net. Je viens de tester en Winform.
 
Je ne sais pas si ça résoudra ton pb de Kanji, mais la réponse m'intéresse !
 
  Mose

Reply

Marsh Posté le 10-10-2005 à 09:39:25    

Ben non moi je n'ai que :
AspNetHostingPermission dans System.Web ensuite... C'est pour ça, HttpUtility n'existe pas chez moi :(
 
Je travaille avec le framework 1.1 ...

Reply

Marsh Posté le 19-10-2005 à 13:39:51    

Au risque de paraître insistant :  
HttpUtility est une classe de System.Web. Au même titre que AspNetHostingPermission.
AspNetHostingPermission c'est la première classe du namespace. Mais il en a d'autres dedans.
 
* De quel 'outil' te sers-tu pour connaître les classes d'un namespace ?
* Peut-être que ton IntelliSense plante et que tu lui fais trop confiance : As-tu essayé de faire un programme et de le compiler en utilisant System.Web.HttpUtility.HmltDecode ? (Si oui, quelle est l'erreur produite ?)
* Peut-être que c'est ton install du framework qui est foireuse ?
 

Reply

Marsh Posté le 19-10-2005 à 13:49:15    

J'ai simplement cette réponse lors de la compilation :
 
Form1.cs(206): Le type ou le nom d'espace de noms 'HttpUtility' n'existe pas dans la classe ou l'espace de noms 'System.Web' (une référence d'assembly est-elle manquante ?)

Reply

Marsh Posté le 19-10-2005 à 14:21:50    

Bon ok, ton message d'erreur semble indiquer qu'effectivement le compilo ne trouve pas d'HttpUtility dans System.Web.
 
* Pour prouver que je ne raconte pas de conneries :
http://msdn.microsoft.com/library/ [...] stopic.asp
 
* A mon avis, tu n'as pas la référence à System.Web.dll dans ton projet.
C'est l'hypothèse la plus crédible étant donné que AspNetHostingPermission est dans System.dll alors que HttpUtility est dans System.Web.dll

Reply

Marsh Posté le 19-10-2005 à 15:05:31    

Exact je n'avais pas la référence... désolé, j'ai pas cherché loin mais la référence me semblait directement intégrée ! :(

Reply

Marsh Posté le 19-10-2005 à 15:48:20    

Ouais, le piège, comme je disais, c'est que AspNetHostingPermission est dans l'assembly System.dll mais dans le namespace System.Web.
 
Merci MS pour sa cohérence :)
Encore un pb de sécu qu'ils ont réglé avec du scotch....

Reply

Marsh Posté le 19-10-2005 à 19:17:49    

Sinon, en passant...
 
Ce format d'encodate, c'est bêtement le code UTF-8 (ou unicode, je sais jamais lequel, j'ai toujours pas compris la différence entre les deux :D)
 
Donc, tu peux passer par une regexp, et remplacer les &#xxxxxxx; par le caractère résultat d'un String.chaisplusquoi qui permet de retrouver un caractère à partir de son code unicode.

Reply

Marsh Posté le 19-10-2005 à 19:17:49   

Reply

Marsh Posté le 19-10-2005 à 19:23:16    

Groumpf, je trouve pas cette méthode :sweat:
 
Pensait qu'on la trouvait dans System.Text, mais nan, pas moyen :spamafote:

Reply

Marsh Posté le 19-10-2005 à 19:30:38    

Sinon... Sans liaison de System.Web, j'ai aussi un System.Web avec uniquement AspNetHostingPermission. Mais si j'ajoute la référence à System.Web, j'ai tout ce qu'il faut qui apparaît.

Reply

Marsh Posté le 24-10-2005 à 10:46:50    

Arjuna a écrit :

Sinon, en passant...
 
Ce format d'encodate, c'est bêtement le code UTF-8 (ou unicode, je sais jamais lequel, j'ai toujours pas compris la différence entre les deux :D)
 
Donc, tu peux passer par une regexp, et remplacer les &#xxxxxxx; par le caractère résultat d'un String.chaisplusquoi qui permet de retrouver un caractère à partir de son code unicode.


 
Sauf erreur de ma part, l'Unicode c'est juste un standard de mapping entre des caractères et des numéros, et UTF-8 c'est un format physique d'encodage, où les caractères sont stockés sur un nombre variable d'octets. Unicode c'est la théorie et UTF-8 la pratique.
 
Pour retrouver un caractère à partir de son code, le plus simple ce serait pas le cast ?   Genre :
char a = (char)code;
 
Et pas besoin d'une regex : string.Replace doit suffir :)
On parle bien de la même chose ?

Reply

Marsh Posté le 24-10-2005 à 10:51:21    

Arjuna a écrit :

Sinon... Sans liaison de System.Web, j'ai aussi un System.Web avec uniquement AspNetHostingPermission. Mais si j'ajoute la référence à System.Web, j'ai tout ce qu'il faut qui apparaît.


Ouais c'est paske AspNetHostingPermission est implémenté dans la dll System.dll, qui est incluse par défaut.

Reply

Sujets relatifs:

Leave a Replay

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