У меня есть пара исходных файлов C++ (один .cpp и один .h), которые сообщаются как данные типа командой file
в Linux. Когда я запускаю команду file -bi
этих файлов, я получаю такой вывод (одинаковый вывод для каждого файла):
application/octet-stream; charset=binary
Каждый файл явно текстовый (я могу просмотреть их в vi
). Что заставляет file
неверно указывать тип этих файлов? Может ли это быть что-то вроде Unicode? Оба эти файла были созданы в Windows-Land (с использованием Visual Studio 2005), но они компилируются в Linux (это кроссплатформенное приложение).
Любые идеи были бы хорошы.
Обновление: я не вижу нулевых символов ни в одном файле. Я нашел несколько расширенных символов в файле .cpp (в блоке комментариев), удалил их, но file
прежнему сообщает ту же кодировку. Я пытался форсировать кодировку в SlickEdit, но, похоже, это не дало эффекта. Когда я открываю файл в vim
, я вижу [converted]
строку, как только я открываю файл. Возможно, я смогу получить vim для принудительного кодирования?