Con razón UTF8 no lo muestra correctamente.
UTF-16 usa 2 bytes para cada caracter, UTF-8 usa un largo variable: 1 byte para los caracteres del código ASCII, 2 bytes para caracteres latinos y hasta 4 bytes según el caracter. Son completamente incompatibles.
Con respecto a la detección, fijate que incluso Windows tuvo errores con esto en el pasado (
http://en.wikipedia.org/wiki/Bush_hid_the_facts). Es realmente difícil la detección de UTF-16.
El error te está diciendo que uno de los bytes no forma un caracter válido codificado en UTF-16. Según la Wikipedia, esto es grave:
Cita:
Iniciado por http://en.wikipedia.org/wiki/Utf-8 If a byte is missing from UTF-16, the whole rest of the string will be meaningless text.
Habría que ver qué cuernos hay en esa posición del archivo. Siendo un registro de conversación quizás no quieras dárnoslo, pero ayudaría a encontrar una solución al problema.
saludos.