Issue1555842
Created on 2006-09-10 16:04 by manlioperillo, last changed 2009-05-01 16:00 by bgamari.
|
msg29793 - (view) |
Author: Manlio Perillo (manlioperillo) |
Date: 2006-09-10 16:04 |
|
The support for Unicode strings in the email package
(notably MIMEText and Header class) is not uniform.
The behaviour with Unicode strings in Header is
documented but the interface is not good.
This code works, but it should not:
>>> h = Header.Header(u"àèìòù", charset="us-ascii")
>>> m = Message.Message()
>>> m["Subject"] = h
>>> print m.as_string()
Allowing this to work can cause confusion, I'm saying
that the charset is us-ascii, not utf-8.
With MIMEText I obtain:
m = MIMEText.MIMEText(u"àèìòù", _charset="us-ascii")
>>> print m.as_string()
[ exception ]
I think that the correct behaviour (for all functions
accepting strings) is:
- Do not accept plain str strings (8-bit).
Accept only if they are plain ascii (7-bit).
- The charset specified should not be considered an
hint, but the charset I want to be used.
Regards Manlio Perillo
|
|
msg29794 - (view) |
Author: Manlio Perillo (manlioperillo) |
Date: 2006-09-10 17:35 |
|
Logged In: YES
user_id=1054957
The last example is not right.
Here is the correct one:
>>> m = MIMEText.MIMEText(u"àèìòù", _charset="utf-8")
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "C:\Python2.4\lib\email\MIMEText.py", line 28, in
__init__
self.set_payload(_text, _charset)
File "C:\Python2.4\lib\email\Message.py", line 218, in
set_payload
self.set_charset(charset)
File "C:\Python2.4\lib\email\Message.py", line 260, in
set_charset
self._payload = charset.body_encode(self._payload)
File "C:\Python2.4\lib\email\Charset.py", line 366, in
body_encode
return email.base64MIME.body_encode(s)
File "C:\Python2.4\lib\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-2: ordinal not in range(128)
So it seems that email.Message does not handle Unicode strings.
The code works if I set the charset to latin-1.
|
|
msg84471 - (view) |
Author: Daniel Diniz (ajaksu2) |
Date: 2009-03-30 03:08 |
|
Confirmed on trunk.
|
|
| Date |
User |
Action |
Args |
| 2009-05-01 16:00:24 | bgamari | set | nosy:
+ bgamari
|
| 2009-03-30 22:56:23 | ajaksu2 | link | issue1685453 dependencies |
| 2009-03-30 03:08:15 | ajaksu2 | set | versions:
+ Python 2.6 nosy:
+ ajaksu2
messages:
+ msg84471
type: behavior stage: test needed |
| 2006-09-10 16:04:26 | manlioperillo | create | |
|