Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #39929
| X-Received | by 10.66.172.76 with SMTP id ba12mr2113467pac.26.1361851224880; Mon, 25 Feb 2013 20:00:24 -0800 (PST) |
|---|---|
| X-Received | by 10.50.186.202 with SMTP id fm10mr1411587igc.10.1361851224811; Mon, 25 Feb 2013 20:00:24 -0800 (PST) |
| Path | csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!jn4no6771570pbb.1!news-out.google.com!ov8ni17067pbb.1!nntp.google.com!su1no7278763pbb.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail |
| Newsgroups | comp.lang.python |
| Date | Mon, 25 Feb 2013 20:00:24 -0800 (PST) |
| Complaints-To | groups-abuse@google.com |
| Injection-Info | glegroupsg2000goo.googlegroups.com; posting-host=69.80.108.19; posting-account=hEeMqAoAAAAN2L2NtWcUUUG7LStm2lEM |
| NNTP-Posting-Host | 69.80.108.19 |
| User-Agent | G2/1.0 |
| MIME-Version | 1.0 |
| Message-ID | <fc332ca1-e77e-4cab-a96f-53b49e734407@googlegroups.com> (permalink) |
| Subject | stmplib MIMEText charset weirdness |
| From | "Adam W." <AWasilenko@gmail.com> |
| Injection-Date | Tue, 26 Feb 2013 04:00:24 +0000 |
| Content-Type | text/plain; charset=UTF-8 |
| Content-Transfer-Encoding | quoted-printable |
| Xref | csiph.com comp.lang.python:39929 |
Show key headers only | View raw
Can someone explain to me why I can't set the charset after the fact and still have it work.
For example:
>>> text = MIMEText('❤¥'.encode('utf-8'), 'html')
>>> text.set_charset('utf-8')
>>> text.as_string()
Traceback (most recent call last):
File "<pyshell#53>", line 1, in <module>
text.as_string()
File "C:\Python32\lib\email\message.py", line 168, in as_string
g.flatten(self, unixfrom=unixfrom)
File "C:\Python32\lib\email\generator.py", line 91, in flatten
self._write(msg)
File "C:\Python32\lib\email\generator.py", line 137, in _write
self._dispatch(msg)
File "C:\Python32\lib\email\generator.py", line 163, in _dispatch
meth(msg)
File "C:\Python32\lib\email\generator.py", line 192, in _handle_text
raise TypeError('string payload expected: %s' % type(payload))
TypeError: string payload expected: <class 'bytes'>
As opposed to:
>>> text = MIMEText('❤¥'.encode('utf-8'), 'html', 'utf-8')
>>> text.as_string()
'Content-Type: text/html; charset="utf-8"\nMIME-Version: 1.0\nContent-Transfer-Encoding: base64\n\n4p2kwqU=\n'
Side question:
>>> text = MIMEText('❤¥', 'html')
>>> text.set_charset('utf-8')
>>> text.as_string()
'MIME-Version: 1.0\nContent-Transfer-Encoding: 8bit\nContent-Type: text/html; charset="utf-8"\n\n❤¥'
Why is it now 8-bit encoding?
Back to comp.lang.python | Previous | Next — Next in thread | Find similar | Unroll thread
stmplib MIMEText charset weirdness "Adam W." <AWasilenko@gmail.com> - 2013-02-25 20:00 -0800
Re: stmplib MIMEText charset weirdness Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-02-26 07:10 +0000
Re: stmplib MIMEText charset weirdness "Adam W." <AWasilenko@gmail.com> - 2013-02-26 07:29 -0800
Re: stmplib MIMEText charset weirdness Terry Reedy <tjreedy@udel.edu> - 2013-02-26 14:46 -0500
csiph-web