echo random text > text_file

Сохраняет текстовый файл в текстовом формате с кодировкой ASCII. Чтобы проверить кодировку, я делаю

chardetect text_file

что говорит мне, что файл в кодировке ASCII. Теперь у меня есть файл формата JPG, и я делаю то же самое

chardetect my_image_file

но он не распознает никакой кодировки в этом файле JPG.

Я прочитал эти два ответа (первый и второй) о том, в чем разница между форматом файла и кодировкой файла, и понял, что кодирование файла (ASCII, UTF-8 и т.д.) Сделано для представления данных пользователям (поскольку компьютеры не понимают по-английски). ), а также иногда проверяет целостность (Base64), в то время как форматы файлов - это просто представление о том, как данные представляются приложению для анализа (HTML, JSON и т. д.), а также о том, что носители и некоторые другие файлы (JPEG, MP4, DOC, PDF) хранятся в двоичном формате.

Вопросы

  • Мое понимание правильности? Если да, то файлы бинарного формата (PDF, MP4, JPEG) не имеют никакой кодировки?
  • Если существует кодировка для двоичных файлов (мультимедиа / другое), как ее обнаружить с помощью терминала.
  • Как определить, какой формат использует файл (JSON, HTML, Обычный текст, PDF, GIF, JPEG и т.д.), Потому что кажется, что chardetect сообщает только информацию о кодировке текста

2 ответа2

1

Используйте команду file чтобы determine file type (man file) .

Другие утилиты могут помочь в дальнейшем идентифицировать определенные типы файлов:

  • chardetect - это universal character encoding detector (man chardetect) .
  • identify describes the format and characteristics of one or more image files.

Также найдите другие утилиты для работы с файлами , такие как mediainfo , ffmpeg , exiftool .

0

"Кодировка" в этом контексте (и мое предположение о команде chardetect ) относится конкретно к способу представления текста в текстовом файле. Другие файлы тоже имеют кодировки, но это относится к чему-то другому.

Я думаю, что вы ищете команду file : она пытается угадать, какой формат использует файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .