I have trouble understanding how endianess works for UTF-16.
UTF-16 (as well as UTF-32) comes in both little-endian and big-endian variants. A byte-order marker in the file can help you detect which one it is in.
See t his t able: http://www.unicode.org/faq/utf_bom.html#gen6