New submission from Flavio Grossi: When trying to encode an email header with a newline in it, correct encoding is done only for strings and not for unicode strings. In fact, for unicode strings, encoding is only done if a non ascii character is contained in it.
The attached patch should fix the problem. Simple example to reproduce the problem: >>> from email.Header import Header as H # correctly encoded >>> H('two\r\nlines', 'utf-8').encode() '=?utf-8?q?two=0D=0Alines?=' # unicode string not encoded >>> H(u'two\r\nlines', 'utf-8').encode() 'two\r\nlines' # unicode string with non ascii chars, correctly encoded >>> H(u'two\r\nlines and \xe0', 'utf-8').encode() '=?utf-8?b?dHdvDQpsaW5lcyBhbmQgw6A=?=' ---------- components: email files: fix_email_header_encoding_uses_ascii_before_selected_charset.diff keywords: patch messages: 229640 nosy: barry, flavio, r.david.murray priority: normal severity: normal status: open title: email.Header no encoding of unicode strings containing newlines type: behavior versions: Python 2.7 Added file: http://bugs.python.org/file36959/fix_email_header_encoding_uses_ascii_before_selected_charset.diff _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue22666> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com