Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bdd0f39

Browse files
committed
Patch #1449244: Support Unicode strings in
email.message.Message.{set_charset,get_content_charset}. Will backport.
1 parent 18c47f6 commit bdd0f39

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

Lib/email/message.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ def set_charset(self, charset):
238238
self.del_param('charset')
239239
self._charset = None
240240
return
241-
if isinstance(charset, str):
241+
if isinstance(charset, basestring):
242242
charset = email.charset.Charset(charset)
243243
if not isinstance(charset, email.charset.Charset):
244244
raise TypeError(charset)
@@ -756,7 +756,9 @@ def get_content_charset(self, failobj=None):
756756
charset = charset[2]
757757
# charset character must be in us-ascii range
758758
try:
759-
charset = unicode(charset, 'us-ascii').encode('us-ascii')
759+
if isinstance(charset, str):
760+
charset = unicode(charset, 'us-ascii')
761+
charset = charset.encode('us-ascii')
760762
except UnicodeError:
761763
return failobj
762764
# RFC 2046, $4.1.2 says charsets are not case sensitive

Lib/email/test/test_email.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,13 @@ def test_broken_base64_payload(self):
502502
msg.set_payload(x)
503503
self.assertEqual(msg.get_payload(decode=True), x)
504504

505+
def test_get_content_charset(self):
506+
msg = Message()
507+
msg.set_charset('us-ascii')
508+
self.assertEqual('us-ascii', msg.get_content_charset())
509+
msg.set_charset(u'us-ascii')
510+
self.assertEqual('us-ascii', msg.get_content_charset())
511+
505512

506513

507514
# Test the email.Encoders module

Misc/NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,9 @@ Core and builtins
168168
Library
169169
-------
170170

171+
- Patch #1449244: Support Unicode strings in
172+
email.message.Message.{set_charset,get_content_charset}.
173+
171174
- Patch #1542681: add entries for "with", "as" and "CONTEXTMANAGERS" to
172175
pydoc's help keywords.
173176

0 commit comments

Comments
 (0)