Следующие функции модуля sys
предоставляют информацию об используемой кодировке в интерпретатора Python из кода.
sys.getdefaultencoding()
,sys.getfilesystemencoding()
,sys.getfilesystemencodeerrors()
,sys._enablelegacywindowsfsencoding()
,sys.maxunicode
.sys.getdefaultencoding()
:Функция sys.getdefaultencoding()
возвращает имя текущей кодировки по умолчанию, используемой реализацией Unicode.
>>> import sys >>> sys.getdefaultencoding() # 'utf-8'
sys.getfilesystemencoding()
:Функция sys.getfilesystemencoding()
возвращает имя кодировки, используемой для преобразования между именами файлов Unicode и именами байтов. Для лучшей совместимости следует использовать строки str
для имен файлов во всех случаях, хотя также поддерживается представление имен файлов в виде байтов. Функции, принимающие или возвращающие имена файлов, должны поддерживать либо строки str
, либо байты bytes
и внутренне преобразовываться в предпочтительное представление системы.
>>> import sys >>> sys.getfilesystemencoding() # 'utf-8'
sys.getfilesystemencodeerrors()
:Функция sys.getfilesystemencodeerrors()
возвращает имя режима ошибки, используемого для преобразования между именами файлов Unicode и именами байтов. Имя кодировки возвращается из sys.getfilesystemencoding()
.
Функции os.fsencode()
и os.fsdecode()
должны использоваться для обеспечения правильного режима кодирования и ошибок.
>>> import sys >>> sys.getfilesystemencodeerrors() # 'surrogateescape'
sys._enablelegacywindowsfsencoding()
:Функция sys._enablelegacywindowsfsencoding()
изменяет кодировку файловой системы по умолчанию и режим ошибок на "mbcs" и "replace" соответственно для совместимости с версиями Python до 3.6.
Это эквивалентно определению переменной среды PYTHONLEGACYWINDOWSFSENCODING
перед запуском Python.
sys.maxunicode
:Значение sys.maxunicode
целое число, представляющее значение наибольшей кодовой точки Unicode, то есть 1114111 (0x10FFFF в шестнадцатеричном формате).
>>> import sys >>> sys.maxunicode # 1114111