Shashwat Anand <anand.shash...@gmail.com> added the comment: I tested it on python 2.5, 2.6, 2.7 trunk and 3.2 varying msg.set_charset(x) with x = 'utf8' and 'utf-8' Here are the results. Apparantly python 2.x had issue with Test case and 3.2 passed but I guess it is unrelated with the issue.
07:35:40 l0nwlf-MBP:~ $ python2.5 Python 2.5.4 (r254:67916, Jul 7 2009, 23:51:24) [GCC 4.2.1 (Apple Inc. build 5646)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from email.MIMEText import MIMEText >>> msg = MIMEText(u'\u043a\u0438\u0440\u0438\u043b\u0438\u0446\u0430') >>> msg.set_charset('utf8') >>> print msg.as_string() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/email/message.py", line 131, in as_string g.flatten(self, unixfrom=unixfrom) File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/email/generator.py", line 84, in flatten self._write(msg) File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/email/generator.py", line 109, in _write self._dispatch(msg) File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/email/generator.py", line 135, in _dispatch meth(msg) File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/email/generator.py", line 178, in _handle_text self._fp.write(payload) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128) >>> msg.set_charset('utf-8') >>> print msg.as_string() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/email/message.py", line 131, in as_string g.flatten(self, unixfrom=unixfrom) File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/email/generator.py", line 84, in flatten self._write(msg) File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/email/generator.py", line 109, in _write self._dispatch(msg) File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/email/generator.py", line 135, in _dispatch meth(msg) File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/email/generator.py", line 178, in _handle_text self._fp.write(payload) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128) 07:36:17 l0nwlf-MBP:~ $ python2.6 Python 2.6.5 (r265:79063, Apr 6 2010, 21:34:21) [GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from email.MIMEText import MIMEText >>> msg = MIMEText(u'\u043a\u0438\u0440\u0438\u043b\u0438\u0446\u0430') >>> msg.set_charset('utf8') >>> print msg.as_string() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/email/message.py", line 135, in as_string g.flatten(self, unixfrom=unixfrom) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/email/generator.py", line 84, in flatten self._write(msg) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/email/generator.py", line 109, in _write self._dispatch(msg) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/email/generator.py", line 135, in _dispatch meth(msg) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/email/generator.py", line 178, in _handle_text self._fp.write(payload) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128) >>> msg.set_charset('utf-8') >>> print msg.as_string() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/email/message.py", line 135, in as_string g.flatten(self, unixfrom=unixfrom) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/email/generator.py", line 84, in flatten self._write(msg) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/email/generator.py", line 109, in _write self._dispatch(msg) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/email/generator.py", line 135, in _dispatch meth(msg) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/email/generator.py", line 178, in _handle_text self._fp.write(payload) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128) 07:36:37 l0nwlf-MBP:~ $ python2.7 Python 2.7a4+ (trunk:78750, Mar 7 2010, 08:09:00) [GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from email.MIMEText import MIMEText >>> msg = MIMEText(u'\u043a\u0438\u0440\u0438\u043b\u0438\u0446\u0430') >>> msg.set_charset('utf8') >>> print msg.as_string() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/email/message.py", line 135, in as_string g.flatten(self, unixfrom=unixfrom) File "/usr/local/lib/python2.7/email/generator.py", line 83, in flatten self._write(msg) File "/usr/local/lib/python2.7/email/generator.py", line 108, in _write self._dispatch(msg) File "/usr/local/lib/python2.7/email/generator.py", line 134, in _dispatch meth(msg) File "/usr/local/lib/python2.7/email/generator.py", line 180, in _handle_text self._fp.write(payload) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128) >>> msg.set_charset('utf-8') >>> print msg.as_string() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/email/message.py", line 135, in as_string g.flatten(self, unixfrom=unixfrom) File "/usr/local/lib/python2.7/email/generator.py", line 83, in flatten self._write(msg) File "/usr/local/lib/python2.7/email/generator.py", line 108, in _write self._dispatch(msg) File "/usr/local/lib/python2.7/email/generator.py", line 134, in _dispatch meth(msg) File "/usr/local/lib/python2.7/email/generator.py", line 180, in _handle_text self._fp.write(payload) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-7: ordinal not in range(128) 07:37:06 l0nwlf-MBP:~ $ python3.2 Python 3.2a0 (py3k:79532, Apr 1 2010, 01:48:52) [GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from email.mime.text import MIMEText >>> msg = MIMEText('\u043a\u0438\u0440\u0438\u043b\u0438\u0446\u0430') >>> msg.set_charset('utf8') >>> print (msg.as_string()) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf8" кирилица >>> msg.set_charset('utf-8') >>> print (msg.as_string()) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" кирилица The aliasing of 'utf-8' into 'utf8' and may be 'utf_8' seems reasonable IMO however Test Case fails. ---------- nosy: +l0nwlf type: -> feature request _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue4487> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com