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 <[email protected]>
<http://bugs.python.org/issue22666>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com