> 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() ... > UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: > ordinal not in range(128)
It's a real shame that unicode support in the python library is very weak sometimes... Anyway I solved my problem by patching email.Charset --- Charset.py~ 2005-11-24 04:20:09.000000000 +0100 +++ Charset.py 2005-11-24 04:21:02.000000000 +0100 @@ -244,6 +244,8 @@ """Convert a string from the input_codec to the output_codec.""" if self.input_codec <> self.output_codec: return unicode(s, self.input_codec).encode(self.output_codec) + elif isinstance(s, unicode): + return s.encode(self.output_codec) else: return s -- damjan -- http://mail.python.org/mailman/listinfo/python-list