Selain jawaban @ jrb, di Vim, pengkodean karakter file terdeteksi berdasarkan opsi fileencodings. (catat 's' di akhir fileencodings)
Yaitu pada Windows, nilai default untuk fileencodings
opsi 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 fileencodings
opsi gagal cocok), maka baca file dengan penyandian karakter yang ditentukan dalam encoding
opsi. Karakter pengkodean default untuk encoding
pilihan adalah: latin1
. Sekarang, karena latin1
adalah pengkodean karakter satu byte panjang, semua byte dalam file adalah latin1
karakter yang valid (bahkan Nul
karakter ^@
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).