sAlut
Ce que Thomas essaie de dire c'est , "hé"  est un str , et u"hé"
c'est de l'unicode

Le fonction set_cookie de Django utilise la classe SimpleCookie de Python

https://github.com/django/django/blob/master/django/http/cookie.py

et cette classe avant de faire un __setitem__ (u"hé") va convertir  value
en str  en
faisant str(u"hé")  et une erreur est retournée.

UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in
position 1:
ordinal not
in range(128)

"hé"  marche parceque  str("hé")  = "hé"

Cependant rien ne t’empêche d’écrire ta propre classe en héritant de

http://hg.python.org/cpython/file/2.7/Lib/Cookie.py
regarde SmartCookie .

Je n'ai aucune idée de comment changer la classe SimpleCookie par de faut
de
django mais le bon sens voudrait que l'on puisse faire via un MiddleWare
en tout cas c'est ce que django suggére.

class MonUnicodeCookieMiddleware(object):
    def process_response(self, request):
            request.cookies =  MonUnicodeCookie()


Thomas  a raison  qu'il ne faut passer que des clefs au Cookies .
—Ad


Le 11 juillet 2013 15:49, Séno Hervé Edorh <[email protected]> a écrit :

> Salut la liste,
>
> J'ai un petit problème avec la fonction set_cookie de django qui ne
> supporte pas *unicode*
>
> Mon nom comporte des accents aigus ce qui fait que lorsque je reçois
>
> if user is not None:
>             if user.is_active:
>                 login(request, user)
>
>                 name = u'%s' % user.get_full_name().strip()
>
>
>  Le get_full_name() reçoit "Hervé Séno Edorh"
>
> donc quand je veux "set mon cookie"
>
> request.set_cookie("nom", name)
>
> j'ai une erreur d'unicode Encode
>
> UnicodeEncodeError at /'ascii' codec can't encode character u'\xe9' in 
> position 1: ordinal not in range(128)
>
>
> Des idées? Merci
> --
> EDORH Hervé Séno
> Developper
> http://www.edorh.com/
> West Africa
>
>
> --
> Ce message a été envoyé à la liste [email protected]
> Gestion de votre abonnement : http://dakarlug.org/liste
> Archives : http://news.gmane.org/gmane.org.user-groups.linux.dakarlug
> Le site du DakarLUG : http://dakarlug.org
>
--
Ce message a été envoyé à la liste [email protected]
Gestion de votre abonnement : http://dakarlug.org/liste
Archives : http://news.gmane.org/gmane.org.user-groups.linux.dakarlug
Le site du DakarLUG : http://dakarlug.org

Répondre à