UTF-8 и UCS-2 / UTF-16 можно легко отличить с помощью метки порядка байтов в начале файла. Если это существует, то очень неплохо поспорить, что файл находится в этой кодировке, но это не абсолютная уверенность. Вы также можете обнаружить, что файл находится в одной из этих кодировок, но не имеет метки порядка байтов.
Я не знаю много о ISO-8859-2, но я не удивлюсь, если почти каждый файл является допустимым текстовым файлом в этой кодировке. Лучшее, что вы сможете сделать, - это проверить это эвристически. Действительно, на странице Википедии, где говорится об этом, можно предположить, что только байт 0x7f недопустим.
Нет идеи прочитать файл «как есть» и получить текст - файл представляет собой последовательность байтов, поэтому вам необходимо применить кодировку символов для декодирования этих байтов в символы.
Источник от stackoverflow