У меня есть файл UTF-16 с спецификацией. Я установил fileencodings для:
set fencs=ucs-bom,utf-16le,utf-8,default,latin1
Однако из-за одного символа в одной строке vim не обнаруживает UTF-16 автоматически и по умолчанию использует latin1 со всеми ^@
нулевыми маркерами. Вынуждая vim прочитать файл как UCS ( :e ++enc=ucs-bom
), он успешно читает файл, но сообщает "ОШИБКА КОНВЕРСИИ в строке {nn}", но кроме этого символа, остальная часть файла была преобразована правильно. Если плохой символ удаляется, файл правильно интерпретируется и отображается.
В любом случае vim игнорирует ошибки конвертации? Принудительное кодирование каждый раз, когда есть действительная спецификация, немного раздражает.
:e ++enc
имеет - то есть, читает файл, но предупреждает об ошибке преобразования (то есть, я хочу знать, что это там, чтобы я мог решить относительно файла). Я попробую и посмотрю, что я получу.