Вы можете разработать свой собственный эвристический алгоритм.Похож на вирусный сканер.Это не работает на 100%, но со временем должно улучшиться.Например, вы можете взять строку и заметить, что она содержит только символы из шестнадцатеричного алфавита, пометить ее для возможности шифрования, заархивировать или что-либо еще, что связано с шестнадцатеричным набором символов.
Вы можете расширить эвристику, чтобы попробовать N различных кодировок и выполнить подсчет слов.Это может помочь сузить возможности кодирования, но в простом случае, скажем, со стандартным английским алфавитом, существует множество совпадений между таблицами кодирования, поэтому вы наверняка получите ложные срабатывания.Но до тех пор, пока перекрытие не содержит внешние / несоответствующие символы, вы все равно должны получать читаемый контент.
Как отметил Марк, не весь контент обязательно читаемый контент.Изображения, zip-файлы и список других данных приведут к чистой чепухе при преобразовании в представление таблицы кодирования.Но даже такие элементы могут содержать согласованные данные, которые будут обнаружены эвристикой.
Эта тема может быть довольно интересной.Просто посмотрите на протокол TCP.Один не просто запускает пакеты через Интернет, ожидая некоторой волшебной интерпретации данных на стороне клиента.Существуют заранее определенные правила (протоколы) для определения способа и типа данных, передаваемых между клиентом / сервером.Таким образом, чтобы непосредственно ответить на ваш вопрос о «угадывании», вы не можете быть уверены в данных, которые вы получите, или в вашей интерпретации, но вы, безусловно, можете разработать приложение, которое будет умнее, чем «предположение».