BOM (byte-order mark)
A few invisible bytes at the start of a text file that signal its encoding. Helpful for some Windows tools, but a frequent cause of stray characters in CSV headers.
A byte-order mark is an optional sequence of bytes at the very start of a text file that declares its encoding. In UTF-8 it is the three bytes EF BB BF. Excel on Windows often writes one and uses it to recognize a UTF-8 CSV correctly, which is genuinely useful in that ecosystem.
The problem is that not every tool expects it. A parser that doesn't strip the BOM will read it as part of the first header, so a column named 'id' shows up as 'id' with garbage in front, and a lookup on that header silently fails. When a CSV's first column 'won't match' anything, a stray BOM is a prime suspect. Saving as UTF-8 without BOM avoids it.