Barry Warsaw wrote: > >>> message['Subject'] > > The raw bytes or the decoded unicode? A header object. > Okay, so you've picked one. Now how do you spell the other way? str(message['Subject']) bytes(message['Subject']) > 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' Where you care about what encoding is used: Message['Subject']=Header('Some text',encoding='utf-8') If you have bytes, for whatever reason: Message['Subject']=b'some bytes'.decode('utf-8') ...because only you know what encoding those bytes use! > One of those maps to > > >>> message['Subject'] = ??? ...should only accept text or a Header object. Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
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