Désencoder du HTML-encoded - C#/.NET managed - Programmation
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
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 ...
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 ?
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 ?)
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
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 !
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....
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 )
Donc, tu peux passer par une regexp, et remplacer les xxxxxx; par le caractère résultat d'un String.chaisplusquoi qui permet de retrouver un caractère à partir de son code unicode.
Marsh Posté le 19-10-2005 à 19:23:16
Groumpf, je trouve pas cette méthode
Pensait qu'on la trouvait dans System.Text, mais nan, pas moyen
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.
Marsh Posté le 24-10-2005 à 10:46:50
Arjuna a écrit : Sinon, en passant... |
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 ?
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.
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