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

Reply via email to