UTF-8 vs UTF-8 без BOM — что когда использовать?
Различий никаких нет, кроме наличия/отсутствия маркера. Кодировка одна и та же - utf-8. По стандарту unicode маркер должен быть.
Удалять маркер BOM при сохранении нужно только для PHP, который почему-то не умеет корректно обрабатывать нормальные unicode файлы.
Добавлю. что разница для "не php" файлов есть. Например, .js файлы, как правило, браузеры отдают без указания charset в заголовках. Если BOM метка есть в файле, то он читается как UTF, в противном случае каждый браузер читает как хочет. У меня лиса открыла JS без BOM как latin1, а хром - cp1251