The hint is here:
its encoding is not explicitly given by Content-Type metadata
You should try that (by HTTP headers or by etc.) For inserting the BOM, your code editor should be able to do that.
Please also see the W3C specs:
Most of the time you are probably better off choosing UTF-8 as your
encoding. [...] One reason for this is that there are special rules
for declaring the encoding of a UTF-16 page.
Whether you use element-based declarations or not, you should ensure
that you always have a byte-order mark at the very start of a UTF-16
encoded file. In effect, this is the in-document declaration.
Furthermore, if your page is encoded as UTF-16, do not declare your
file to be "UTF-16BE" or "UTF-16LE", use "UTF-16" only. The byte-order
mark at the beginning of your file will indicate whether the encoding
scheme is little-endian or big-endian. (This is because content
explicitly encoded as, say, UTF-16BE should not use a byte-order mark;
but HTML5 requires a byte-order mark for UTF-16 encoded pages.)
http://www.w3.org/International/questions/qa-html-encoding-declarations#utf16