Selain jawaban @ jrb, di Vim, pengkodean karakter file terdeteksi berdasarkan opsi fileencodings. (catat 's' di akhir fileencodings)
Yaitu pada Windows, nilai default untuk fileencodingsopsi adalah ucs-bom, yang berarti:
periksa apakah BOM ada di awal file.
Jika BOM ada, maka 'baca karakter pengkodean file keluar dari BOM'.
Jika BOM tidak ada (dan dalam hal ini juga berarti bahwa semua penyandian karakter yang ditentukan dalam fileencodingsopsi gagal cocok), maka baca file dengan penyandian karakter yang ditentukan dalam encodingopsi. Karakter pengkodean default untuk encodingpilihan adalah: latin1. Sekarang, karena latin1adalah pengkodean karakter satu byte panjang, semua byte dalam file adalah latin1karakter yang valid (bahkan Nulkarakter ^@yang Anda lihat *).
* - sebenarnya, ^@adalah karakter baris baru dalam teks buffer Vim, bukan karakter Nul.
Cara yang tepat untuk membaca file adalah dengan menentukan pengkodean karakter secara manual sebagai UTF-16 (seperti UTF-16 adalah pengkodean karakter yang tepat dalam kasus ini).