Además de la respuesta de @ jrb, en Vim, la codificación de caracteres del archivo se detecta en función de la opción de codificación de archivos. (tenga en cuenta la 's' al final de las codificaciones de archivo)
Es decir, en Windows, el valor predeterminado para la fileencodingsopción es ucs-bom, lo que significa:
compruebe si existe una lista de materiales al comienzo del archivo.
Si existe BOM, entonces 'lea la codificación de caracteres del archivo fuera de BOM'.
Si BOM no existe (y en este caso eso también significaría que todas las codificaciones de caracteres especificadas en la fileencodingsopción no coincidieron), entonces lea el archivo con la codificación de caracteres especificada en la encodingopción. La codificación de caracteres por defecto de la encodingopción es: latin1. Ahora, debido a que latin1es la codificación de caracteres de longitud de un byte , todos los bytes en el archivo son latin1caracteres válidos (incluso el Nulcarácter ^@que está viendo *).
* - en realidad, ^@es el carácter de nueva línea en el texto del búfer de Vim, no el carácter Nul.
La forma correcta de leer el archivo es especificar la codificación de caracteres manualmente como UTF-16 (ya que parece que UTF-16 es la codificación de caracteres adecuada en este caso).