все Python 3codecsпонятие
codecs.BOM_UTF16
метки порядка байтов (BOM)
BOM UTF-16 в родном порядке байтов машины: на x86 и ARM это BOM_UTF16_LE. Его пишет кодек 'utf-16'; codecs.BOM — другое имя того же объекта.
Синтаксис
codecs.BOM_UTF16 # b'\xff\xfe' на little-endian
Значение зависит от платформы, поэтому в коде, который распознаёт файлы, сравнивают с BOM_UTF16_LE и BOM_UTF16_BE явно, а не с BOM_UTF16: файл с чужой машины может нести другой порядок. Этой константой удобно проверить, что вывод 'utf-16' начинается с метки. codecs.BOM — тот же объект; на little-endian машине это и BOM_UTF16_LE.
Примеры
import codecs
print(codecs.BOM is codecs.BOM_UTF16) # → True
print(codecs.BOM_UTF16 in (codecs.BOM_UTF16_LE, codecs.BOM_UTF16_BE)) # → True
print('hi'.encode('utf-16')[:2] == codecs.BOM_UTF16) # → True
print(codecs.BOM_UTF16) # → ? b'\xff\xfe' — на little-endian машине
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности