Python Glossary English

все 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Сообщить о неточности