What is the BOM (Byte-Order-Mark)?
The Byte-Order-Mark (or BOM), is a special marker added at the very beginning of an Unicode file encoded in UTF-8, UTF-16 or UTF-32. It is used to indicate whether the file uses the big-endian or little-endian byte order. The BOM is mandatory for UTF-16 and UTF-32, but it is optional for UTF-8. Note that the BOM has the same value as the Unicode character U+FEFF: the ZERO WIDTH NON-BREAK SPACE. Big-endian byte order (a.k.a. network byte order) is used by processors such as Motorola or RISC (most significant byte is stored first). Little-endian byte order (most significant byte is stored last) is used by processors such as Intel or Vax. Both mechanism have advantages and drawbacks.