все Python 3localeфункция
locale.getdefaultlocale()
настройка локали
Угадывает локаль пользователя по переменным окружения LC_ALL, LC_CTYPE, LANG и LANGUAGE и возвращает (код языка, кодировка).
Синтаксис
locale.getdefaultlocale(envvars=('LC_ALL', 'LC_CTYPE', 'LANG', 'LANGUAGE'))
Она читает переменные окружения, а не действующую локаль процесса, поэтому расходится с getlocale() после setlocale() и не знает о режиме UTF-8. В 3.11 её объявили устаревшей и собирались убрать в 3.15, и на 3.11–3.13 вызов печатает DeprecationWarning; в 3.15 (и в свежих выпусках 3.14) устаревание отменили. Для кодировки надёжнее getencoding(), для локали — setlocale(LC_ALL, '') и getlocale().
Примеры
import locale
import warnings
with warnings.catch_warnings():
warnings.simplefilter('ignore', DeprecationWarning) # 3.11–3.13 предупреждают
print(locale.getdefaultlocale()) # → ? ('ru_RU', 'UTF-8') — по переменным окружения
print(locale.getlocale()) # → ? — а это действующая локаль процесса
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности