``` inline const static std::u16string c_utf16Bom{ u"\xfeff" };``` shows that you support only UTF16 LE, but UTF16 BE has swapped signature: FF FE.