IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Encoder caractere spéciaux en HTML


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Avril 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2011
    Messages : 54
    Points : 39
    Points
    39
    Par défaut Encoder caractere spéciaux en HTML
    Bonsoir a tous,

    J'ai un petit problème avec HtmlEncode.
    Lors de l'envois d'une requete HTTP (POST), je me retrouve confronter à un problème lorsque mes données contiennent des caracteres spéciaux (accentuation ou autre).
    Je cherche donc le moyen d'encoder en html ces fameux caracteres.

    Je me suis donc tourné vers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Server.HtmlEncode(data)
    (avec data qui contient ma requete http), mais j'ai droit au message d'erreur :
    Server n'existe pas dans le contexte actuel.
    J'ai pourtant bien :
    Je code pour .Net Framework 2.0 avec la version Express de Visual Studio C#, est-ce que ca vient de là ?

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Utilise HttpUtility.HtmlEncode.

    Server.HttpUtility s'utilise dans une page ASP.NET, qui a une propriété Server de type HttpServerUtility. Mais en Windows Forms cette propriété n'existe pas...

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Avril 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2011
    Messages : 54
    Points : 39
    Points
    39
    Par défaut
    Merci tomlev pour ta réponse.
    En revanche, ca me met la même erreur mais ce coup ci avec HttpUtility.
    Il suffit de faire un using System.Web ? Ou y a d'autres librairies à importer ?

    Pour l'instant je me contente de mettre un :
    au début du script.

    Et de faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data = HttpUtility.HtmlEncode(data);
    Merci de ta patience avec moi tomlev

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Tu as bien ajouté une référence à l'assembly System.Web.dll ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Avril 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2011
    Messages : 54
    Points : 39
    Points
    39
    Par défaut
    ben ... heu ... comment dire .... : Merci !! )
    Je n'y avais même pas pensé une seule seconde :p
    Heureusement que tu es là )

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Avril 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2011
    Messages : 54
    Points : 39
    Points
    39
    Par défaut
    J'ai un dernier souci, c'est que j'utilise ca avant de faire une requête HTTP en POST, et le problème c'est que du coup ma requête est mal interprétée a cause des nombreux "&" caractérisants à la fois les caractères spéciaux en HTML mais également les différentes variables.
    Du coup normalement je devrais avoir :
    data="variable1 =hého salut&variable2=toto"
    et là je me retrouve avec :
    data="variable1=hého salut&variable2=toto"

    Je pense que normalement le é devrait etre transformé en %E9, d'après ce que j'ai pu voir sur Fiddler que tu m'avais conseillé sur un autre post, comment faire ?

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ah mais là c'est pas l'encodage HTML qu'il te faut, c'est l'encodage d'URL (HttpUtility.UrlEncode)

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Avril 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2011
    Messages : 54
    Points : 39
    Points
    39
    Par défaut
    Si j'utilise l'encodage d'URL le résultat est assez bizarre, ca m'affiche des symboles étranges.
    En effet, le "é" se transforme en %C3%a9 au lieu de se transformer en %E9 au moment de la requete.
    Est-ce réellement un encodage d'URL dont j'ai besoin ? Ou alors un encodage ISO je ne sais combien ?
    Est-ce un parametre a définir pour que l'encodage se fasse comme je veux ?

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Avril 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2011
    Messages : 54
    Points : 39
    Points
    39
    Par défaut
    C'est bon.
    En rajoutant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string mavariable1_encode = HttpUtility.UrlEncode(mavariable1, Encoding.GetEncoding("iso-8859-1"));
    Avant de les utiliser dans ma requete HTTP ca fonctionne
    Juste que mon €(Euro) n'est pas reconnu, mais ce n'est que secondaire comme probleme. (si y a une solution, je suis bien entendu preneur).

    Je le considère donc comme résolu.
    Merci encore tomlev.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Avril 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2011
    Messages : 54
    Points : 39
    Points
    39
    Par défaut
    Problème entièrement résolu.
    Pour afficher correctement l'€ il suffit d'utiliser Encoding.GetEncoding(1252) plutot que d'utiliser l'iso-8859-1.

    Merci beaucoup pour toute l'aide

    A bientot :p

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Essaie avec Encoding.Default ou avec Encoding.GetEncoding(1252)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Encoder les carctères spéciaux en HTML Entity
    Par jinpol dans le forum Général Python
    Réponses: 14
    Dernier message: 05/06/2010, 00h05
  2. Réponses: 0
    Dernier message: 28/12/2008, 22h44
  3. [HTML::Entities] caracteres spéciaux
    Par Katachana dans le forum Modules
    Réponses: 2
    Dernier message: 25/03/2008, 12h02
  4. Analyseur XML : extraction des caracteres spéciaux
    Par abdou.sahraoui dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 19/07/2005, 15h07
  5. [DB2] supprimer les caractere spéciaux
    Par guin dans le forum DB2
    Réponses: 1
    Dernier message: 17/01/2005, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo