En complément de la réponse de @jrb, dans Vim, le codage des caractères du fichier est détecté en fonction de l'option fileencodings. (notez le 's' à la fin de fileencodings)
C'est-à-dire que sous Windows, la valeur par défaut de l'option fileencodings
L'option est ucs-bom
ce qui signifie :
vérifier si la nomenclature existe au début du fichier.
Si BOM existe, alors 'lire le codage des caractères du fichier à partir de BOM'.
Si la BOM n'existe pas (et dans ce cas, cela signifierait également que tous les codages de caractères spécifiés dans le fichier fileencodings
ne correspond pas), puis lisez le fichier avec le codage de caractères spécifié dans l'option encoding
option. Le codage des caractères par défaut pour l'option encoding
l'option est : latin1
. Maintenant, parce que latin1
est le un octet codage des caractères de longueur, tous les octets du fichier sont valides latin1
(même les caractères Nul
caractère ^@
que vous voyez*).
*- en fait, ^@
est le caractère de nouvelle ligne dans le texte de la mémoire tampon de Vim, et non le caractère Nul.
La bonne façon de lire le fichier est de spécifier manuellement le codage des caractères comme UTF-16 (car il semble que UTF-16 soit le bon codage des caractères dans ce cas).