IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Urllib.urlencode et unicode


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 29
    Par défaut Urllib.urlencode et unicode
    Bonjour,

    Je souhaite récuperer une page en fonction de ce que un utilisateur à tapé. Jusque la aucun soucis, tout fonctionne.
    Mais quand j'envoit un texte avec des accents par exemples (ou n'importe quel caractère exotique) j'ai l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      File "/usr/lib/python2.4/urllib.py", line 1162, in urlencode
        v = quote_plus(str(v))
    UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 8: ordinal not in range(128)
    La ligne qui pose problème dans mon code c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    urllib.urlencode({u'q': u'define:' + text, u'oi': u'define', u'defl' : lang})
    text et lang sont en unicode (vérifié avec type()).

    Donc la je sais pas trop quoi faire, merci pour votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 29
    Par défaut
    Et ben, suffit que je poste ici pour trouver une solution...
    En esperant que ca serve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def unicode_urlencode(params):
        if isinstance(params, dict):
            params = params.items()
            return urllib.urlencode([(k, isinstance(v, unicode) and v.encode('utf-8') or v)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment insérer de l'unicode dans un Richedit ?
    Par DanaKil dans le forum C++Builder
    Réponses: 6
    Dernier message: 30/03/2004, 00h43
  2. Utilisation de l'unicode dans un algo de cryptage
    Par Zazeglu dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 28/10/2003, 14h38
  3. [Unicode] Internationalisation d'une application
    Par Thierry Laborde dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2003, 20h15
  4. conversion Unicode -> ASCII
    Par juzam dans le forum C
    Réponses: 8
    Dernier message: 24/07/2003, 10h07
  5. [debutant] unicode
    Par dadou91 dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 23/05/2003, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo