From: Barry Warsaw Date: Thu, 10 Oct 2002 15:11:20 +0000 (+0000) Subject: __init__(): RFC 2046 $4.1.2 says charsets are not case sensitive. X-Git-Tag: v2.3c1~3833 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=14fc464ec9b0e4ac0e62af515740e9bb0a5ea448;p=python __init__(): RFC 2046 $4.1.2 says charsets are not case sensitive. Coerce the argument to lower case. Also, since body encodings can't be SHORTEST, default the CHARSETS failobj's second item to BASE64. --- diff --git a/Lib/email/Charset.py b/Lib/email/Charset.py index 9a7e510976..67cc1ecb42 100644 --- a/Lib/email/Charset.py +++ b/Lib/email/Charset.py @@ -177,13 +177,15 @@ class Charset: this attribute will have the same value as the input_codec. """ def __init__(self, input_charset=DEFAULT_CHARSET): + # RFC 2046, $4.1.2 says charsets are not case sensitive + input_charset = input_charset.lower() # Set the input charset after filtering through the aliases self.input_charset = ALIASES.get(input_charset, input_charset) # We can try to guess which encoding and conversion to use by the # charset_map dictionary. Try that first, but let the user override # it. henc, benc, conv = CHARSETS.get(self.input_charset, - (SHORTEST, SHORTEST, None)) + (SHORTEST, BASE64, None)) # Set the attributes, allowing the arguments to override the default. self.header_encoding = henc self.body_encoding = benc