Python Glossary English

все Python 3codecsпонятие

codecs.BOM_UTF32

метки порядка байтов (BOM)

BOM UTF-32 в родном порядке байтов машины: на x86 и ARM это BOM_UTF32_LE. Его пишет кодек 'utf-32' в начало вывода.

Синтаксис

codecs.BOM_UTF32  # b'\xff\xfe\x00\x00' на little-endian

Как и BOM_UTF16, значение зависит от машины, поэтому при распознавании файлов сравнивают с BOM_UTF32_LE и BOM_UTF32_BE явно. Кодек 'utf-32' кладёт метку в каждый вызов encode: две строки, закодированные отдельно и склеенные, дадут вторую метку посреди данных — она прочитается как символ '\ufeff'.

Примеры

import codecs
data = 'a'.encode('utf-32') + 'b'.encode('utf-32')
print(data.startswith(codecs.BOM_UTF32))  # → True
print(repr(data.decode('utf-32')))  # → 'a\ufeffb'

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности