Codage des caractères ?

Résolu
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010 - 5 mai 2005 à 10:47
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010 - 9 mai 2005 à 07:54
Lorsque je veux afficher le contenu d'un cookie sur une page *.aspx avec qqch du genre :

lbInfo.text = request.cookie("monCookie")("mavariable"),
certains caractères sont mal codés : l'espace se transforme en "+", le point en "%2E", la virgule en "%2C".
Ca tient au codage des cookies apparemment.(?)
Mais sur une page *.asp, tout va bien les caractères sont bien interprètés.
Comment résoudre ce tout petit problème sur les pages *.aspx ?
si quelqu'un sait ... merci !
Gilles

2 réponses

SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010
9 mai 2005 à 07:54
Merci pour ta réponse, elle m'a permis de résoudre la question,


Même si "machin.text = Request.Cookies("moncookie")("mavariable").value est taxé
d'incorrect par le débugger de visual studio ,
("Request.Cookies("moncookie")("mavariable")" est un "string" et "value" n'est pas
un membre de "string"). Tu m'as fait remarquer que ça pouvait dépendre de la façon
dont le cookie est écrit.
J'ai remarqué que ça se passait sur un vieux site où le cookie est envoyé par une
page *.asp avec l'instruction :


response.cookies("MonCookie)("MaValeur1")="plus vite chauffeur"


àDe ce fait, le cookie se voit inscrire :
"MonCookie - MaValeur1= plus+vite+chauffeur&….autres valeurs"


Si le cookie est envoyé par une page *.aspx:


Pour ceux ou celles que ça intéresse voici la syntaxe :


Dim MonCookie As HttpCookie
MonCookie = New HttpCookie("MonCookie ")
MonCookie.Values("MaValeur1") = "plus vite chauffeur"
CookieMultiple.Expires = Now.AddMonths(1)
Response.Cookies.Add(MonCookie)

Et on récupère la valeur correcte avec par exemple:

Dim MonCookie As HttpCookie
If MonCookie Is Nothing Then
Response.Write("pas de cookie MonCookie ")
Else
MonCookie = Request.Cookies("MonCookie ")
Response.Write("MonCookie.Values.GetValues(0)(0)=" & MonCookie.Values.GetValues(0)(0))


'ou bien :


Response.Write("MonCookie.Values.item("MaValeur1")=" & MonCookie.Values. item("MaValeur1")=)


End If


Dans ce cas, il est écrit dans le cookie le string sans les signes parasites :


"MonCookie - MaValeur1= plus vite chauffeur&….autres valeurs"


Il reste à savoir s'il existe une instruction asp qui n'écrit pas les signes "+" et autres parasites dans le cookie, mais c'est un problème mineur !


@+ Gilles
3
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
6 mai 2005 à 13:32
Salut

Déja, en ASP.NET c'est :
machin.text = Request.Cookies("moncookie")("mavariable").Value
ou mieux :
machin.text = CType(Request.Cookies("moncookie")("mavariable").Value, String)

Ensuite ça dépend de la façon dont tu as écris dans le cookie (tu pourrais montrer un petit bout de code...)

Nurgle
C'est une grande folie que de vouloir être sage tout seul !
0
Rejoignez-nous