Skip to content

Commit ffeaeaf

Browse files
[3.13] gh-133967: Do not normalize locale name 'C.UTF-8' to 'en_US.UTF-8' (GH-135347) (GH-135350)
(cherry picked from commit 0f866cb) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
1 parent 37027ab commit ffeaeaf

File tree

4 files changed

+12
-1
lines changed

4 files changed

+12
-1
lines changed

Lib/locale.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -878,6 +878,10 @@ def getpreferredencoding(do_setlocale=True):
878878
# updated 'sr@latn' -> 'sr_CS.UTF-8@latin' to 'sr_RS.UTF-8@latin'
879879
# removed 'univ'
880880
# removed 'universal'
881+
#
882+
# SS 2025-06-10:
883+
# Remove 'c.utf8' -> 'en_US.UTF-8' because 'en_US.UTF-8' does not exist
884+
# on all platforms.
881885

882886
locale_alias = {
883887
'a3': 'az_AZ.KOI8-C',
@@ -957,7 +961,6 @@ def getpreferredencoding(do_setlocale=True):
957961
'c.ascii': 'C',
958962
'c.en': 'C',
959963
'c.iso88591': 'en_US.ISO8859-1',
960-
'c.utf8': 'en_US.UTF-8',
961964
'c_c': 'C',
962965
'c_c.c': 'C',
963966
'ca': 'ca_ES.ISO8859-1',

Lib/test/test_locale.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,10 @@ def test_c(self):
388388
self.check('c', 'C')
389389
self.check('posix', 'C')
390390

391+
def test_c_utf8(self):
392+
self.check('c.utf8', 'C.UTF-8')
393+
self.check('C.UTF-8', 'C.UTF-8')
394+
391395
def test_english(self):
392396
self.check('en', 'en_US.ISO8859-1')
393397
self.check('EN', 'en_US.ISO8859-1')
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Do not normalize :mod:`locale` name 'C.UTF-8' to 'en_US.UTF-8'.

Tools/i18n/makelocalealias.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,9 @@ def check(data):
140140
data = locale.locale_alias.copy()
141141
data.update(parse_glibc_supported(args.glibc_supported))
142142
data.update(parse(args.locale_alias))
143+
# Hardcode 'c.utf8' -> 'C.UTF-8' because 'en_US.UTF-8' does not exist
144+
# on all platforms.
145+
data['c.utf8'] = 'C.UTF-8'
143146
while True:
144147
# Repeat optimization while the size is decreased.
145148
n = len(data)

0 commit comments

Comments
 (0)