все Python 3sysфункция
sys.getdefaultencoding()
кодировки
Возвращает 'utf-8' — кодировку по умолчанию для str.encode() и bytes.decode() без аргумента. В Python 3 это значение не меняется.
Синтаксис
sys.getdefaultencoding()
Главная ловушка: это НЕ кодировка файлов. До Python 3.15 open() без encoding берёт кодировку локали (locale.getpreferredencoding(), на русской Windows — cp1251; с 3.15 — UTF-8, PEP 686), поэтому файл, прочитанный «по умолчанию», бывает кракозябрами, хотя здесь написано utf-8. Функции setdefaultencoding в Python 3 нет — пишите encoding='utf-8' явно.
Примеры
import sys
print(sys.getdefaultencoding()) # → utf-8
print('привет'.encode() == 'привет'.encode('utf-8')) # → True
import locale
print(locale.getpreferredencoding()) # → ? UTF-8 — на Windows cp1251
with open('a.txt', 'w', encoding='utf-8') as f:
f.write('явно')
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности