]> granicus.if.org Git - python/commitdiff
__init__(): Coerce the input_charset to unicode (with ascii encoding) before
authorBarry Warsaw <barry@python.org>
Sat, 9 Oct 2004 21:08:30 +0000 (21:08 +0000)
committerBarry Warsaw <barry@python.org>
Sat, 9 Oct 2004 21:08:30 +0000 (21:08 +0000)
calling .lower() on it.  This fixes the problem described in SF patch # 866982
where in the tr_TR.ISO-8859-9 locale, 'I'.lower() isn't 'i'.  unicodes are
locale insensitive.

Lib/email/Charset.py

index 6a3e3ca10f8b349d1c22f29df64e93922d01acf9..df860c5e5bcbd079d203093a6b2b894fa8d22a8a 100644 (file)
@@ -185,8 +185,9 @@ 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()
+        # RFC 2046, $4.1.2 says charsets are not case sensitive.  We coerce to
+        # unicode because its .lower() is locale insensitive.
+        input_charset = unicode(input_charset, 'ascii').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