Почему VIM игнорировать спецификацию моего файла?

Мне нужен файл, который я хочу чтобы убедиться, что он закодирован с помощью utf8 .

Итак, я создаю файл

c:\> gvim umlaute.txt

В VIM я набираю Umlaute:

äöü

Я проверяю кодировку ...

:set enc

(VIM откликается на encoding = latin1 )

и затем я проверяю кодировку файла ...

:set fenc

(VIM echoes fileencoding = )

Затем я записываю файл

:w

и проверяю размер файла на жестком диске:

!dir umlaute.txt

(размер 5 байтов) Это, конечно, ожидается, 3 байта для текста и 2 для \ x0a \ x0d.

Хорошо, теперь я установил кодировку на

:set enc=utf8

Буфер становится странным

<e4><f6><fc>

Думаю, это шестнадцатеричное представление символов ascii, которые я ранее ввел. Поэтому я переписываю их

äöü

Запись, проверка размера:

:w
:$ dir umlaute.txt

На этот раз это 8 байтов. Думаю, имеет смысл 2 байта на каждый символ плюс \ x0d \ x0a.

Хорошо, поэтому я хочу убедиться, что в следующий раз en файл будет открыт с encodiung = utf8.

:setb
:w

:$ dir umlaute.txt

11 байт. Это, конечно, 8 (предыдущие) байта + 3 байта для спецификации (ef bb bf).

Итак, я

:quit

vim и снова открываю файл

и проверяю, установлена ​​ли кодировка:

:set enc

Но VIM настаивает на том, что его encoding = latin1 .

Итак, почему это так. Я ожидал, что спецификация сообщит VIM, что это файл UTF8.

5
задан René Nyffenegger 26 August 2011 в 11:47
поделиться