diff -r fb49394f75ed Lib/locale.py --- a/Lib/locale.py Mon Aug 15 14:24:15 2011 +0300 +++ b/Lib/locale.py Mon Aug 15 16:48:09 2011 -0400 @@ -355,6 +355,8 @@ """ # Normalize the locale name and extract the encoding + if isinstance(localename, unicode): + localename = localename.encode('ascii') fullname = localename.translate(_ascii_lower_map) if ':' in fullname: # ':' is sometimes used as encoding delimiter. diff -r fb49394f75ed Lib/test/test_locale.py --- a/Lib/test/test_locale.py Mon Aug 15 14:24:15 2011 +0300 +++ b/Lib/test/test_locale.py Mon Aug 15 16:48:09 2011 -0400 @@ -412,6 +412,11 @@ locale.setlocale(locale.LC_CTYPE, loc) self.assertEqual(loc, locale.getlocale()) + def test_normalize_issue12752(self): + # Issue #1813 caused a regression where locale.normalize() would no + # longer accept unicode strings. + self.assertEqual(locale.normalize(u'en_US'), 'en_US.ISO8859-1') + def test_main(): tests = [