Разница между UTF-8 с BOM и без BOM при чтении и записи текстовых файлов заключается в наличии или отсутствии метки порядка байтов (BOM) в начале файла. 24
UTF-8 с BOM содержит три байта, идентифицирующие кодировку файла (BOM-запись). 2 Если знать, в какой кодировке файл, эти три байта можно опустить и записать просто один текст — режим UTF-8 без BOM. 2
BOM используется, чтобы сообщить декодировщику, который кодирует текст. 5 Для многобайтовых кодировок BOM также указывает конечную кодировку. 5
Выбор между UTF-8 с BOM и без BOM зависит от конкретных условий работы: например, если нужно работать на разных платформах, следует использовать UTF-8 с BOM, а если главным образом в контекстах, связанных с Linux, — UTF-8 без BOM. 5