On Apr 11, 2009, at 8:39 AM, Chris Withers wrote: > Barry Warsaw wrote: >> >>> message['Subject'] >> The raw bytes or the decoded unicode? > > A header object. Yep. You got there before I did. :) >> Okay, so you've picked one. Now how do you spell the other way? > > str(message['Subject']) Yes for unstructured headers like Subject. For structured headers... hmm. > bytes(message['Subject']) Yes. >> Now, setting headers. Sometimes you have some unicode thing and >> sometimes you have some bytes. You need to end up with bytes in >> the ASCII range and you'd like to leave the header value unencoded >> if so. But in both cases, you might have bytes or characters >> outside that range, so you need an explicit encoding, defaulting to >> utf-8 probably. >> >>> Message.set_header('Subject', 'Some text', encoding='utf-8') >> >>> Message.set_header('Subject', b'Some bytes') > > Where you just want "a damned valid email and stop making my life > hard!": > > Message['Subject']='Some text' Yes. In which case I propose we guess the encoding as 1) ascii, 2) utf-8, 3) wtf? > Where you care about what encoding is used: > > Message['Subject']=Header('Some text',encoding='utf-8') Yes. > If you have bytes, for whatever reason: > > Message['Subject']=b'some bytes'.decode('utf-8') > > ...because only you know what encoding those bytes use! So you're saying that __setitem__() should not accept raw bytes? -Barry -------------- next part -------------- A non-text attachment was scrubbed... Name: PGP.sig Type: application/pgp-signature Size: 304 bytes Desc: This is a digitally signed message part URL: <http://mail.python.org/pipermail/python-dev/attachments/20090413/9df3eb61/attachment.pgp>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4