Unicode in MIMEText

Damjan gdamjan at gmail.com
Wed Nov 23 22:10:45 EST 2005


Why doesn't this work:

from email.MIMEText import MIMEText
msg = MIMEText(u'\u043a\u0438\u0440\u0438\u043b\u0438\u0446\u0430')
msg.set_charset('utf-8')
msg.as_string()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/lib/python2.4/email/Message.py", line 129, in as_string
    g.flatten(self, unixfrom=unixfrom)
  File "/usr/lib/python2.4/email/Generator.py", line 82, in flatten
    self._write(msg)
  File "/usr/lib/python2.4/email/Generator.py", line 113, in _write
    self._dispatch(msg)
  File "/usr/lib/python2.4/email/Generator.py", line 139, in _dispatch
    meth(msg)
  File "/usr/lib/python2.4/email/Generator.py", line 180, in _handle_text
    payload = cset.body_encode(payload)
  File "/usr/lib/python2.4/email/Charset.py", line 366, in body_encode
    return email.base64MIME.body_encode(s)
  File "/usr/lib/python2.4/email/base64MIME.py", line 136, in encode
    enc = b2a_base64(s[i:i + max_unencoded])
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7:
ordinal not in range(128)

-- 
damjan



More information about the Python-list mailing list