Accueil » Zope » Forum Zope » Forum Général Zope » ZPT : comment passer des lettres accentuées ?

 • ZPT : comment passer des lettres accentuées ?

Document Actions
Réponses: 5   Visites: 0
Up one level
Vous devez être un membre enregistré pour contribuer sur ce forum. Inscrivez-vous maintenant

 • ZPT : comment passer des lettres accentuées ?

Posté par tcr le 13/03/2008 15:52
Bonjour,

Dans une ZPT, j'ai ceci:
code:
      <div class="portalMessage"
           tal:content="string:Vous avez cliqué sur ${request/came_from}"> 
      </div>


qui récupère un argument passé dans une URL :
code:
?came_from=Informations%20generales


Problème : si je mets les accents (ou %E9 à la place) à l'affichage j'ai l'erreur :
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 14: ordinal not in range(128)

Comment décoder l'URL dans le${request/came_from}?

Merci

Thierry
  •  • Re: ZPT : comment passer des lettres accentuées ?

    Posté par ychaouche le 13/03/2008 22:28
    As-tu essayé quelque chose comme
    code:
    tal:content="python: 'vous avez cliqué sur '+unicode(context.REQUEST['came_from'])"


    Je ne suis pas sûre que ça marche, je n'ai pas de zope sous la main pour essayer.
  •  • Re: ZPT : comment passer des lettres accentuées ?

    Posté par tcr le 14/03/2008 10:24
    Merci, mais j'obtiens le même message d'erreur...

    Je vois pas quoi essayer :(

    D'autres idées ?
  •  • Re: ZPT : comment passer des lettres accentuées ?

    Posté par glickind le 14/03/2008 16:32
    URL encoding (RFCs et convertisseur en javascript)
    http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

    Unicode data in Django
    http://www.djangoproject.com/documentation/unicode/

    Unicode Howto
    http://docs.python.org/dev/howto/unicode.html

    pense aussi au header HTTP Content-type, par exemple
    code:
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 

    http://docs.python.org/lib/module-urllib2.html

    http://docs.python.org/lib/module-urlparse.html

    pense aussi à url_quote dans Products.PythonScripts.standard

    Bonne chance
  •  • Re: ZPT : comment passer des lettres accentuées ?

    Posté par glickind le 14/03/2008 17:10
  •  • Re: ZPT : comment passer des lettres accentuées ?

    Posté par ychaouche le 18/03/2008 09:53
    Salut,

    J'ai essayé de reproduire ton problème sur mon ZOPE sans succès.

    Voici le contenu de ma zpt de test :

    code:
    <h1 tal:content="string:Vous avez cliqué sur ${request/var}"> </h1>


    J'appelle cette template avec l'URL suivante :
    http://10.75.49.102:8081/test/test_unicode?var=Informations%E9generales

    Et j'ai tout qui s'affiche correctement.

    Voici ma configuration :
    code:
    Zope Version : (Zope 2.9.0-, python 2.4.3, linux2)
    Python Version : 2.4.3 (#1, Aug 25 2006, 12:01:13)
    System Platform :linux2



    dans $INSTANCE_HOME/etc/zope.conf j'ai un petit :
    default-zpublisher-encoding utf-8

    Pourrais-tu nous donner plus d'infos sur ta config ? essayer d'autres combinaisons ?

    Peux-être que le fait de concaténer un string avec un unicodeString dans le même bout de pt fait tout pt.

    Essayes peut-être d'isoler la partie qui contient des accents pour qu'elle soit affichée toute seule :

    code:
    <div class="portalMessage"> 
    Vous avez cliqué sur <ins tal:content="request/came_from"> </ins>
    </div>