The byte order mark, or BOM for short, is a special Unicode character that can be used to indicate that a file’s contents is Unicode. Visual Studio is one of those editors that like to use the BOM when saving UTF-8 files. There are a few problems with the BOM. It can break shell scripts, as it precedes the shebang. It can cause unnecessary diff noise in git history, just like any other invisible character mismatch (spaces vs tabs, different line endings, lack of EOL at EOF). In short, I don’t like it and I’d like to get rid of it.