Codage des caractères ? [Résolu]

Signaler
Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010
-
Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010
-
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

Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010

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
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
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 !