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

ASP.NET Discussion :

Encoding des caractère spéciaux passer en paramètre


Sujet :

ASP.NET

  1. #1
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut Encoding des caractère spéciaux passer en paramètre
    Bonjour,

    Voila j'ai une appli ASP.net qui recoit des param en entrée soit cette form:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ../Bestellungen.aspx?id=170+Carglass+Luxembourg+S.%E0.r.l.
    Comme vous pouvez le voir mon à est remplacé par %E0.

    Et quand je le récupère dans mon code c# sur ma page ASPX à l'aide de ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    string id;
            string Lang;
            Encoding toto = Encoding.Unicode;
            Request.ContentEncoding = toto;
            id = Request.Params["id"];
            Lang = Request.Params["Lang"];
            Amt = Request.Params["Amt"];
            firmenNameZ1.Text = id;
    Ben je perd mon à... Pouvez-vous me dire quelle encodeing je dois utiliser?

    Merci

    Thierry

  2. #2
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Je te suggère de te renseigner sur une méthode très pratique qui s'appelle UrlDecode.

  3. #3
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    Merci pour ta réponse mais je n'arrive pas à faire marcher ta méthode en effet quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id =  Server.UrlDecode(Request.Params["id"]);
    Ca ne change pas le résultat stocker dans mon string

    Merci

  4. #4
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string avant = "../Bestellungen.aspx?id=170+Carglass+Luxembourg+S.%E0.r.l.";
    string apres = System.Web.HttpUtility.UrlDecode(avant);
    résultat : ./Bestellungen.aspx?id=170 Carglass Luxembourg S..r.l.

  5. #5
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Bon alors le problème vient de:

    Car quand je navigue en debug sur la propriétés mes caractères spéciaux ne sont déjà plus la...

    Aurais-tu une idée ou une autre méthode pour récupérer ces param avec cette encoding?

    pour info c'est envoyer depuis une page html de cette facon:
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form method="get" action="/Bestellung/Bestellungen.aspx">
                  <input type="hidden" name="id" value="690 FL-0001.527.730-9 A. MÜLLER STIFTUNG, in Schaan_FL" />
                  <input type="hidden" name="Lang" value="1" />
                  <input type="hidden" name="Amt" value="Öffentlichkeitsregister Liechtenstein" />
                  <p>
                    <input type="submit" value="Bestellungen" name="B1" size="15" />
                  </p>
                </form>

    avec un encoding de la page HTML déclarer comme ceci:
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
    <html>
    ....
    </html>


    Merci

  6. #6
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Attend, je résume :
    * Au départ tu te plaignais paske tu récupérais une string encodée.
    * Maintenant tu te rend compte que ta string est déjà décodée, et tu t'en plains.

    Je ne comprend pas ce que tu veux, tu m'expliques ?

  7. #7
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Je voulais dire par "plus la" que le résultat étais déjà tronqué (sans mes caractère spéciaux) quand je regarde dans request.param en debug...

    Mais si tel aurai été le cas je t'aurais dit merci et j'aurais cliqué sur résolu au lieu de reposer une question.

  8. #8
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    On va récapituler, si tu veux bien, paske là ca tourne au dialogue de sourd.
    Je me doute que t'as encore un pb, mais je comprend pas ce que c'est.

    Tu peux me dire clairement

    * ce que tu as en sortie
    * ce que tu voudrais en sortie

  9. #9
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Ok c'est d'accord,

    Tu m'as dit qu'il fallait que j'utilise urldecode pour résoudre mon problème de caractère spéciaux mais ca ne marche pas car en mode debug quand je regarde la valeur de Request.params j'ai ceci:



    On voit donc que les caractères ne sont déjà plus la il ont été tronquées.

    Par contre dans le chemin du navigateur on voit:




    Donc ma question est pourquoi la il est déjà tronqué? Y a t'il une autre méthode que request pour récupérer la valeur passer en paramètre?

    Et je te montrais aussi comment j'envoyais le form afin que tu puisse te rendre compte si l'erreur vient plutôt de là?

    Merci beaucoup pour ton aide

  10. #10
    Membre expérimenté Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Points : 1 379
    Points
    1 379
    Par défaut
    Oki, je comprend bien mieux.
    Oui, tu peux utiliser directement "Request.QueryString", c'est ce que j'ai toujours utilisé, mais je ne peux pas te garantir que ça fonctionne mieux.

    Je ne connais pas ton encodage, j'utilise encoding="utf-8".
    Il est sans doute en cause, un petit test avec utf-8 te permettra de le savoir.

    Sinon, il est pas impossible que ton %DC ait été traduit au moment où tu le lis avec le debuggeur. Essaye de copier la Request.Params["id"] dans une chaîne, et regarde la taille de celle-ci, voir si ton caractère spécial a été tronqué ou s'il est seulement invisible.

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/12/2014, 10h00
  2. Passage de paramètres contenant des caractères spéciaux (+, -,etc.)
    Par Mil17 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/06/2008, 11h21
  3. Réponses: 4
    Dernier message: 28/01/2006, 20h03
  4. bash => Perl : passer des caractères spéciaux
    Par kafifi dans le forum Langage
    Réponses: 8
    Dernier message: 27/01/2006, 22h20
  5. Où trouver la liste des caractères spéciaux?
    Par gamez dans le forum Langage
    Réponses: 3
    Dernier message: 19/08/2003, 17h54

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