I've written it for fun and because BOM is still a valid problem in l10n world. It's simple and relies only on standard libraries, so should work pretty much everywhere.
It contains simple test which you can run by:
I've also added simple wrapper, so you can use it as executable:
Usage: ./bomToolkit <filePath> c - to check for BOM. ./bomToolkit <filePath> r - to remove BOM. ./bomToolkit <filePath> a - to add BOM.
And you can find Windows executable in win subfolder.
It's 22 times faster than similar one I've written in C#, so either C is faster at that or I've written it better:) Enjoy!
As always, you can use it as you want, but I give you no warranty.