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

C# Discussion :

CSharp Convertion String en chaine de caractères compatible avec les URLs


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 8
    Points : 10
    Points
    10
    Par défaut CSharp Convertion String en chaine de caractères compatible avec les URLs
    Salut tout le monde ,

    Je travaille actuellement sous VS 2008 et mon but est de faire passer des paramètres à une page web par le biais des HTTP Get.

    Le problème est que après avoir convertit mon String en URI, les caractères accentués prennent une forme bizarre par exemple è devient è.


    Je voudrais donc savoir si il existe une méthode pour rendre compatible une chaine de caractère String avec les URL HTTP.

    J'ai trouvé ça sur wikipédia au sujet des URLs:

    on remarque qu’un caractère non ASCII comme « è » est codé en « %C3%A8 » (au moyen d’un codage de caractère Unicode sous la forme UTF-8 avant transformation des octets non ASCII en notation hexadécimale à deux chiffres par octet
    http://fr.wikipedia.org/wiki/Url
    Mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    String path = "http://localhost/export/test.php" + HTTPGet;
     
    Uri uri = new Uri(path);
     
     uri. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
     
     WebResponse response = request.GetResponse();
    HTTPGet contient une chaîne de type "?i=Espèce&j=1 ..."

    le è devient è dans mon URL... Embètant pour l'insertion dans la BDD...

    Merci beaucoup pour vos réponses !

  2. #2
    Membre habitué Avatar de thelpi
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 217
    Points : 156
    Points
    156
    Par défaut
    Salut,

    perso j'utilise ce code la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
    private const int shopEncoding = 28591;
     
    private string GetStream(string chUrl)
            {
                string stream = "";
     
                    try
                    {
                        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(chUrl);
                        request.Timeout = 30000;
                        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                        using (Stream mystream = response.GetResponseStream())
                        {
                            using (StreamReader mystreamreader = new StreamReader(mystream, Encoding.GetEncoding(shopEncoding)))
                            {
                                stream = mystreamreader.ReadToEnd().Replace("\r\n", "\n").Replace("\n", "\r\n");
                            }
                        }
                    }
                    catch (UrlEncodeException e)
                    {
    // gestion de l'exception
                    }
     
     
                return stream;
            }
     
    private string UrlEncode(string strToEncode)
            {
                string strEncode = "";
                try
                {
                    strEncode = HttpUtility.UrlEncode(strToEncode, Encoding.GetEncoding(shopEncoding));
                }
                catch
                {
                    throw new UrlEncodeException("Impossible d'encoder le caractère, l'instruction a été stoppé");
                }
                return strEncode;
            }
    Tu appele UrlEncode sur chaque paramètre à passé en GET, et tu donne à GetStream l'URL final encodé.

    A voir le code d'encoding dont tu as besoin (ici c'est ISO je ne sais plus combien

    @plus

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/09/2014, 13h55
  2. Réponses: 1
    Dernier message: 02/10/2012, 11h14
  3. Réponses: 3
    Dernier message: 02/10/2012, 08h27
  4. Réponses: 4
    Dernier message: 18/04/2011, 22h56
  5. Réponses: 6
    Dernier message: 21/02/2007, 00h44

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