1

Voilà mon problème :
je voudrais accéder à une URL qui contient des caractères spéciaux or je développe mon application sur windows mobile et la seule méthode que j'ai trouvée pour accéder à une URL avec le .net compact framework c'est WebBrowser.Navigate(URI) qui prend comme paramètre seulement des objets de type URI (dans le .net framework normal, on peut passer des strings et le problème serait résolu) qui me transforme mes %E9 et autres en leur caractère associé (ie é pour %E9) , résultat quand je veux accéder à la page www.toto.com/all%E9 j'arrive sur www.toto.com/allé qui n'existe pas (et là, sous windows Vista/XP ça fonctionnerait car IE7 transforme allé en all%E9 or pas IE mobile...). Ma question est donc la suivante : existe-t-il une autre méthode que webbrowser.navigate pour accéder à une URL en utilisant le .net compact framework (2.0 de préférence)? (sachant que InternetOpenURL n'est pas géré par le .net compact framework)
Le travail est une belle chose, ne soyez pas égoistes, laissez le à vos amis
Comment être modeste quand on est le meilleur
I'm God's clone!

2

Le site en question n'est pas conforme à RFC2718 section 2.2.5:
Unless there is some compelling reason for a particular scheme to do otherwise, translating character sequences into UTF-8 (RFC 2279) [3] and then subsequently using the %HH encoding for unsafe octets is recommended.

%E9 n'est pas de l'UTF-8.

Cela dit, WebBrowser.Navigate n'est pas conforme à RFC3987 section 3.2:
   Conversions from URIs to IRIs MUST NOT use any character encoding
   other than UTF-8 in steps 3 and 4, even if it might be possible to
   guess from the context that another character encoding than UTF-8 was
   used in the URI.  For example, the URI
   "http://www.example.org/r%E9sum%E9.html" might with some guessing be
   interpreted to contain two e-acute characters encoded as iso-8859-1.
   It must not be converted to an IRI containing these e-acute
   characters.  Otherwise, in the future the IRI will be mapped to
   "http://www.example.org/r%C3%A9sum%C3%A9.html", which is a different
   URI from "http://www.example.org/r%E9sum%E9.html".

et boum!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

aux dernières nouvelles, %E9 c'est de l'UTF-8 il me semble (ou alors y'a un truc que j'ai pas compris), et le fait que WebBrowser.Navigate ne soit pas conforme ne m'avance pas, je vais pas envoyer un mail à Microsoft pour leur dire de changer leur fonction parce qu'elle est pas conforme...
Le travail est une belle chose, ne soyez pas égoistes, laissez le à vos amis
Comment être modeste quand on est le meilleur
I'm God's clone!

4

La représentation %E9 elle-même est de l'ASCII, mais l'octet codé 0xE9 n'est pas de l'UTF-8 à lui seul (il n'est valide que dans une combinaison d'octets qui représentent un caractère UTF-8).

J'ai expliqué d'où vient ton problème, mais malheureusement je n'ai pas de solution à te proposer.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

5

mais y'a peut être un autre moyen d'envoyer les accents dans une url? Parce que là c'est pour envoyer des données, la page est du type www.site.com/send.php?text=xxxxx et si un de mes "x" est un "é", ça passe pas, alors qu'avec "%E9" l'accent passe, peut être que si je mais &#233 ça passe? (c'est quoi la norme pour passer un accent), sinon je pourrais essayer un Webrequest, mais j'ai essayé et ça me renvoi rien (peut-être dois je envoyer le webrequest à www.site.com/send.php plutôt qu'à www.site.com/send.php?text=xxxxxx ?)
Le travail est une belle chose, ne soyez pas égoistes, laissez le à vos amis
Comment être modeste quand on est le meilleur
I'm God's clone!