Python 3.11+localeфункция
locale.getencoding()
кодировка
Возвращает кодировку текущей локали (LC_CTYPE), не обращая внимания на режим UTF-8 Python.
Синтаксис
locale.getencoding()
В отличие от getpreferredencoding(False), режим UTF-8 её не переубеждает: на русской Windows она вернёт 'cp1251', даже когда open() уже пишет в UTF-8. Это важно с 3.15, где режим UTF-8 включён по умолчанию: getencoding() показывает кодировку системы, а не ту, которой Python открывает файлы. Функция появилась в 3.11 как замена устаревшим способам узнать кодировку.
Примеры
import locale
import sys
print(locale.getencoding()) # → ? UTF-8 или cp1251 — кодировка системы
print(locale.getpreferredencoding(False)) # → ? utf-8 в режиме UTF-8
print(sys.flags.utf8_mode) # → ? 1 — по умолчанию с 3.15
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности