Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Python] Soucis d'encodage avec Tkinter

Sujet résolu
    12 février 2008 à 1:07:01

    Bonsoir à tous.

    Je bosse présentement sur un tchat avec Python et Tkinter, et j'ai un assez vilain problème d'encodage. Le principe du tchat est le suivant :

    Une foiction reception() envoit une requète vers un serveur qui lui communique les messages écrits depuis la dernière requète en UTF8
    Elle traite via des expressions régulière le retour pour le mettre en forme
    Puis elle utilise la fonction Insert() pour mettre ce texte dans un champ de Text() de Tkinter. Voici l'extrait de code dont je vous parle :

    1. from Tkinter import *
    2. import urllib
    3. import urllib2
    4. import re
    5. import threading,time
    6. headers = { 'Cookie' : 'Pseudo=Trent;' }
    7. def reception():
    8.     req = urllib2.Request('http://adresse_du_serveur.com/chat.php', '', headers)
    9.     handle = urllib2.urlopen(req)
    10.     reponse = handle.read()
    11.     # traitement de la reponse
    12.     verif = re.search("succes",reponse)
    13.     #print reponse
    14.     if verif:
    15.         auteur = re.findall('"author":"(.*?)"',reponse)
    16.         message = re.findall('"content":"(.*?)",',reponse)
    17.         if auteur :
    18.             # Affichage    
    19.             format = str(auteur) + str(" : ") + str(message) + str("\n")
    20.             messages.insert(END,format)
    21.         reception()
    22. t = threading.Thread(target=reception)
    23. t.start()
    24. # Création de l'interface Tk
    25. fenetre = Tk()
    26. messages = Text(fenetre)
    27. messages.pack()
    28. fenetre.mainloop()


    Je suis toutefois confronté à un très vilain problème d'accent car Tkinter n'affiche pas le texte en UTF8...

    Une solution ?
    Edit : Capture explicative du problème:
    http://files.myopera.com/TR3NT/Snapshot/6chat.png

    Merci d'avance ;)
    Trent.
    • Partager sur Facebook
    • Partager sur Twitter
      13 février 2008 à 1:03:54

      1. # -*- coding: cp1252 -*-

      Essaye avec ca dans le code stp.

      • Partager sur Facebook
      • Partager sur Twitter
        13 février 2008 à 4:11:03

        Citation : Deviante

        1. # -*- coding: cp1252 -*-


        Essaye avec ca dans le code stp.



        Aucun changement toutefois cela sers à encoder notre script et n'a aucune influence sur l'encodage qu'utilise Tk non ?
        • Partager sur Facebook
        • Partager sur Twitter
          13 février 2008 à 4:30:51

          Je te laisse expliquer ce que l'on vient de résoudre sur ce fameux chat :magicien:
          • Partager sur Facebook
          • Partager sur Twitter
            13 février 2008 à 5:02:18

            Problème régler, cela venait du fait que les regex créait des listes et de ce fait l'écriture de la liste directe faisait planté l'encodage :) .

            Merci à Deviante et V@ldun pour leur aide précieuse :)
            • Partager sur Facebook
            • Partager sur Twitter
              13 février 2008 à 5:11:37

              Citation : Trent

              il faut juste rajouté un [0] pour qu'il n'écrive pas toute la liste ce qui plante l'encodage en somme

              ;)
              • Partager sur Facebook
              • Partager sur Twitter

              [Python] Soucis d'encodage avec Tkinter

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown