Problema recuperando el texto de un TextEdit (QT)

Javi jardindeletras en telefonica.net
Sab Jul 3 06:34:38 CEST 2004


Hola

Estoy escribiendo un programa para mandar e-mails con las librerias smtplib y 
qt y me ha surgido el siguiente problema con las vocales acentuadas dentro de 
un TextEdit:

Primero usé la siguiente línea para recuperar el contenido de un textEdit:

cuerpo=str(widget_principal.txtCuerpo.text())

pero me daba este error:

Traceback (most recent call last):
  File "qmail.py", line 41, in bEnviar_clicked
    cuerpo=str(widget_principal.txtCuerpo.text())
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 
17: ordinal not in range(128)

Entonces la cambié por:

cuerpo=unicode(widget_principal.txtCuerpo.text()) 

pero ahora es smtplib el que falla:

Traceback (most recent call last):
  File "qmail.py", line 68, in bEnviar_clicked
    smtpServidor.sendmail (remitente,destinatario,mensaje)
  File "/usr/lib/python2.3/smtplib.py", line 688, in sendmail
    (code,resp) = self.data(msg)
  File "/usr/lib/python2.3/smtplib.py", line 485, in data
    self.send(q)
  File "/usr/lib/python2.3/smtplib.py", line 312, in send
    self.sock.sendall(str)
  File "<string>", line 1, in sendall
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 
67: ordinal not in range(128)

He probado a usar la función ToASCII de encodings.idna pero tampoco funciona.

¿Podéis hecharme una mano?

Gracias




Más información sobre la lista de distribución Python-es