@@ -860,6 +860,24 @@ def getpreferredencoding(do_setlocale=True):
860860#    updated 'ca_es@valencia' -> 'ca_ES.ISO8859-15@valencia' to 'ca_ES.UTF-8@valencia' 
861861#    updated 'kk_kz' -> 'kk_KZ.RK1048' to 'kk_KZ.ptcp154' 
862862#    updated 'russian' -> 'ru_RU.ISO8859-5' to 'ru_RU.KOI8-R' 
863+ # 
864+ # SS 2025-02-04: 
865+ # Updated alias mapping with glibc 2.41 supported locales and the latest 
866+ # X lib alias mapping. 
867+ # 
868+ # These are the differences compared to the old mapping (Python 3.13.1 
869+ # and older): 
870+ # 
871+ #    updated 'c.utf8' -> 'C.UTF-8' to 'en_US.UTF-8' 
872+ #    updated 'de_it' -> 'de_IT.ISO8859-1' to 'de_IT.UTF-8' 
873+ #    removed 'de_li.utf8' 
874+ #    updated 'en_il' -> 'en_IL.UTF-8' to 'en_IL.ISO8859-1' 
875+ #    removed 'english.iso88591' 
876+ #    updated 'es_cu' -> 'es_CU.UTF-8' to 'es_CU.ISO8859-1' 
877+ #    updated 'russian' -> 'ru_RU.KOI8-R' to 'ru_RU.ISO8859-5' 
878+ #    updated 'sr@latn' -> 'sr_CS.UTF-8@latin' to 'sr_RS.UTF-8@latin' 
879+ #    removed 'univ' 
880+ #    removed 'universal' 
863881
864882locale_alias  =  {
865883    'a3' :                                   'az_AZ.KOI8-C' ,
@@ -939,7 +957,7 @@ def getpreferredencoding(do_setlocale=True):
939957    'c.ascii' :                              'C' ,
940958    'c.en' :                                 'C' ,
941959    'c.iso88591' :                           'en_US.ISO8859-1' ,
942-     'c.utf8' :                               'C .UTF-8' ,
960+     'c.utf8' :                               'en_US .UTF-8' ,
943961    'c_c' :                                  'C' ,
944962    'c_c.c' :                                'C' ,
945963    'ca' :                                   'ca_ES.ISO8859-1' ,
@@ -956,6 +974,7 @@ def getpreferredencoding(do_setlocale=True):
956974    'chr_us' :                               'chr_US.UTF-8' ,
957975    'ckb_iq' :                               'ckb_IQ.UTF-8' ,
958976    'cmn_tw' :                               'cmn_TW.UTF-8' ,
977+     'crh_ru' :                               'crh_RU.UTF-8' ,
959978    'crh_ua' :                               'crh_UA.UTF-8' ,
960979    'croatian' :                             'hr_HR.ISO8859-2' ,
961980    'cs' :                                   'cs_CZ.ISO8859-2' ,
@@ -977,11 +996,12 @@ def getpreferredencoding(do_setlocale=True):
977996    'de_be' :                                'de_BE.ISO8859-1' ,
978997    'de_ch' :                                'de_CH.ISO8859-1' ,
979998    'de_de' :                                'de_DE.ISO8859-1' ,
980-     'de_it' :                                'de_IT.ISO8859-1 ' ,
981-     'de_li.utf8 ' :                           'de_LI.UTF-8 ' ,
999+     'de_it' :                                'de_IT.UTF-8 ' ,
1000+     'de_li' :                                 'de_LI.ISO8859-1 ' ,
9821001    'de_lu' :                                'de_LU.ISO8859-1' ,
9831002    'deutsch' :                              'de_DE.ISO8859-1' ,
9841003    'doi_in' :                               'doi_IN.UTF-8' ,
1004+     'dsb_de' :                               'dsb_DE.UTF-8' ,
9851005    'dutch' :                                'nl_NL.ISO8859-1' ,
9861006    'dutch.iso88591' :                       'nl_BE.ISO8859-1' ,
9871007    'dv_mv' :                                'dv_MV.UTF-8' ,
@@ -1004,7 +1024,7 @@ def getpreferredencoding(do_setlocale=True):
10041024    'en_gb' :                                'en_GB.ISO8859-1' ,
10051025    'en_hk' :                                'en_HK.ISO8859-1' ,
10061026    'en_ie' :                                'en_IE.ISO8859-1' ,
1007-     'en_il' :                                'en_IL.UTF-8 ' ,
1027+     'en_il' :                                'en_IL.ISO8859-1 ' ,
10081028    'en_in' :                                'en_IN.ISO8859-1' ,
10091029    'en_ng' :                                'en_NG.UTF-8' ,
10101030    'en_nz' :                                'en_NZ.ISO8859-1' ,
@@ -1020,7 +1040,6 @@ def getpreferredencoding(do_setlocale=True):
10201040    'en_zw.utf8' :                           'en_ZS.UTF-8' ,
10211041    'eng_gb' :                               'en_GB.ISO8859-1' ,
10221042    'english' :                              'en_EN.ISO8859-1' ,
1023-     'english.iso88591' :                     'en_US.ISO8859-1' ,
10241043    'english_uk' :                           'en_GB.ISO8859-1' ,
10251044    'english_united-states' :                'en_US.ISO8859-1' ,
10261045    'english_united-states.437' :            'C' ,
@@ -1036,7 +1055,7 @@ def getpreferredencoding(do_setlocale=True):
10361055    'es_cl' :                                'es_CL.ISO8859-1' ,
10371056    'es_co' :                                'es_CO.ISO8859-1' ,
10381057    'es_cr' :                                'es_CR.ISO8859-1' ,
1039-     'es_cu' :                                'es_CU.UTF-8 ' ,
1058+     'es_cu' :                                'es_CU.ISO8859-1 ' ,
10401059    'es_do' :                                'es_DO.ISO8859-1' ,
10411060    'es_ec' :                                'es_EC.ISO8859-1' ,
10421061    'es_es' :                                'es_ES.ISO8859-1' ,
@@ -1086,6 +1105,7 @@ def getpreferredencoding(do_setlocale=True):
10861105    'ga_ie' :                                'ga_IE.ISO8859-1' ,
10871106    'galego' :                               'gl_ES.ISO8859-1' ,
10881107    'galician' :                             'gl_ES.ISO8859-1' ,
1108+     'gbm_in' :                               'gbm_IN.UTF-8' ,
10891109    'gd' :                                   'gd_GB.ISO8859-1' ,
10901110    'gd_gb' :                                'gd_GB.ISO8859-1' ,
10911111    'ger_de' :                               'de_DE.ISO8859-1' ,
@@ -1126,6 +1146,7 @@ def getpreferredencoding(do_setlocale=True):
11261146    'icelandic' :                            'is_IS.ISO8859-1' ,
11271147    'id' :                                   'id_ID.ISO8859-1' ,
11281148    'id_id' :                                'id_ID.ISO8859-1' ,
1149+     'ie' :                                   'ie.UTF-8' ,
11291150    'ig_ng' :                                'ig_NG.UTF-8' ,
11301151    'ik_ca' :                                'ik_CA.UTF-8' ,
11311152    'in' :                                   'id_ID.ISO8859-1' ,
@@ -1180,6 +1201,7 @@ def getpreferredencoding(do_setlocale=True):
11801201    'ks_in' :                                'ks_IN.UTF-8' ,
11811202    '[email protected] ' :                
'ks_IN.UTF-8@devanagari' ,
 11821203    'ku_tr' :                                'ku_TR.ISO8859-9' ,
1204+     'kv_ru' :                                'kv_RU.UTF-8' ,
11831205    'kw' :                                   'kw_GB.ISO8859-1' ,
11841206    'kw_gb' :                                'kw_GB.ISO8859-1' ,
11851207    'ky' :                                   'ky_KG.UTF-8' ,
@@ -1198,13 +1220,15 @@ def getpreferredencoding(do_setlocale=True):
11981220    'lo_la.mulelao1' :                       'lo_LA.MULELAO-1' ,
11991221    'lt' :                                   'lt_LT.ISO8859-13' ,
12001222    'lt_lt' :                                'lt_LT.ISO8859-13' ,
1223+     'ltg_lv.utf8' :                          'ltg_LV.UTF-8' ,
12011224    'lv' :                                   'lv_LV.ISO8859-13' ,
12021225    'lv_lv' :                                'lv_LV.ISO8859-13' ,
12031226    'lzh_tw' :                               'lzh_TW.UTF-8' ,
12041227    'mag_in' :                               'mag_IN.UTF-8' ,
12051228    'mai' :                                  'mai_IN.UTF-8' ,
12061229    'mai_in' :                               'mai_IN.UTF-8' ,
12071230    'mai_np' :                               'mai_NP.UTF-8' ,
1231+     'mdf_ru' :                               'mdf_RU.UTF-8' ,
12081232    'mfe_mu' :                               'mfe_MU.UTF-8' ,
12091233    'mg_mg' :                                'mg_MG.ISO8859-15' ,
12101234    'mhr_ru' :                               'mhr_RU.UTF-8' ,
@@ -1218,6 +1242,7 @@ def getpreferredencoding(do_setlocale=True):
12181242    'ml_in' :                                'ml_IN.UTF-8' ,
12191243    'mn_mn' :                                'mn_MN.UTF-8' ,
12201244    'mni_in' :                               'mni_IN.UTF-8' ,
1245+     'mnw_mm' :                               'mnw_MM.UTF-8' ,
12211246    'mr' :                                   'mr_IN.UTF-8' ,
12221247    'mr_in' :                                'mr_IN.UTF-8' ,
12231248    'ms' :                                   'ms_MY.ISO8859-1' ,
@@ -1286,19 +1311,22 @@ def getpreferredencoding(do_setlocale=True):
12861311    'pt_pt' :                                'pt_PT.ISO8859-1' ,
12871312    'quz_pe' :                               'quz_PE.UTF-8' ,
12881313    'raj_in' :                               'raj_IN.UTF-8' ,
1314+     'rif_ma' :                               'rif_MA.UTF-8' ,
12891315    'ro' :                                   'ro_RO.ISO8859-2' ,
12901316    'ro_ro' :                                'ro_RO.ISO8859-2' ,
12911317    'romanian' :                             'ro_RO.ISO8859-2' ,
12921318    'ru' :                                   'ru_RU.UTF-8' ,
12931319    'ru_ru' :                                'ru_RU.UTF-8' ,
12941320    'ru_ua' :                                'ru_UA.KOI8-U' ,
12951321    'rumanian' :                             'ro_RO.ISO8859-2' ,
1296-     'russian' :                              'ru_RU.KOI8-R ' ,
1322+     'russian' :                              'ru_RU.ISO8859-5 ' ,
12971323    'rw' :                                   'rw_RW.ISO8859-1' ,
12981324    'rw_rw' :                                'rw_RW.ISO8859-1' ,
12991325    'sa_in' :                                'sa_IN.UTF-8' ,
1326+     'sah_ru' :                               'sah_RU.UTF-8' ,
13001327    'sat_in' :                               'sat_IN.UTF-8' ,
13011328    'sc_it' :                                'sc_IT.UTF-8' ,
1329+     'scn_it' :                               'scn_IT.UTF-8' ,
13021330    'sd' :                                   'sd_IN.UTF-8' ,
13031331    'sd_in' :                                'sd_IN.UTF-8' ,
13041332    '[email protected] ' :                
'sd_IN.UTF-8@devanagari' ,
 @@ -1340,7 +1368,7 @@ def getpreferredencoding(do_setlocale=True):
13401368    'sq_mk' :                                'sq_MK.UTF-8' ,
13411369    'sr' :                                   'sr_RS.UTF-8' ,
13421370    'sr@cyrillic' :                          'sr_RS.UTF-8' ,
1343-     'sr@latn' :                              'sr_CS .UTF-8@latin' ,
1371+     'sr@latn' :                              'sr_RS .UTF-8@latin' ,
13441372    'sr_cs' :                                'sr_CS.UTF-8' ,
13451373    'sr_cs.iso88592@latn' :                  'sr_CS.ISO8859-2' ,
13461374    'sr_cs@latn' :                           'sr_CS.UTF-8@latin' ,
@@ -1359,14 +1387,17 @@ def getpreferredencoding(do_setlocale=True):
13591387    'sr_yu@cyrillic' :                       'sr_RS.UTF-8' ,
13601388    'ss' :                                   'ss_ZA.ISO8859-1' ,
13611389    'ss_za' :                                'ss_ZA.ISO8859-1' ,
1390+     'ssy_er' :                               'ssy_ER.UTF-8' ,
13621391    'st' :                                   'st_ZA.ISO8859-1' ,
13631392    'st_za' :                                'st_ZA.ISO8859-1' ,
1393+     'su_id' :                                'su_ID.UTF-8' ,
13641394    'sv' :                                   'sv_SE.ISO8859-1' ,
13651395    'sv_fi' :                                'sv_FI.ISO8859-1' ,
13661396    'sv_se' :                                'sv_SE.ISO8859-1' ,
13671397    'sw_ke' :                                'sw_KE.UTF-8' ,
13681398    'sw_tz' :                                'sw_TZ.UTF-8' ,
13691399    'swedish' :                              'sv_SE.ISO8859-1' ,
1400+     'syr' :                                  'syr.UTF-8' ,
13701401    'szl_pl' :                               'szl_PL.UTF-8' ,
13711402    'ta' :                                   'ta_IN.TSCII-0' ,
13721403    'ta_in' :                                'ta_IN.TSCII-0' ,
@@ -1393,6 +1424,7 @@ def getpreferredencoding(do_setlocale=True):
13931424    'tn' :                                   'tn_ZA.ISO8859-15' ,
13941425    'tn_za' :                                'tn_ZA.ISO8859-15' ,
13951426    'to_to' :                                'to_TO.UTF-8' ,
1427+     'tok' :                                  'tok.UTF-8' ,
13961428    'tpi_pg' :                               'tpi_PG.UTF-8' ,
13971429    'tr' :                                   'tr_TR.ISO8859-9' ,
13981430    'tr_cy' :                                'tr_CY.ISO8859-9' ,
@@ -1407,8 +1439,7 @@ def getpreferredencoding(do_setlocale=True):
14071439    'ug_cn' :                                'ug_CN.UTF-8' ,
14081440    'uk' :                                   'uk_UA.KOI8-U' ,
14091441    'uk_ua' :                                'uk_UA.KOI8-U' ,
1410-     'univ' :                                 'en_US.utf' ,
1411-     'universal' :                            'en_US.utf' ,
1442+     'univ.utf8' :                            'en_US.UTF-8' ,
14121443    'universal.utf8@ucs4' :                  'en_US.UTF-8' ,
14131444    'unm_us' :                               'unm_US.UTF-8' ,
14141445    'ur' :                                   'ur_PK.CP1256' ,
@@ -1437,6 +1468,7 @@ def getpreferredencoding(do_setlocale=True):
14371468    'yo_ng' :                                'yo_NG.UTF-8' ,
14381469    'yue_hk' :                               'yue_HK.UTF-8' ,
14391470    'yuw_pg' :                               'yuw_PG.UTF-8' ,
1471+     'zgh_ma' :                               'zgh_MA.UTF-8' ,
14401472    'zh' :                                   'zh_CN.eucCN' ,
14411473    'zh_cn' :                                'zh_CN.gb2312' ,
14421474    'zh_cn.big5' :                           'zh_TW.big5' ,
0 commit comments