Невозможно надежно определить кодировку текстового файла.Вам нужно внеполосно сообщить, что такое кодировка.
Причина этого проста: существует множество 8-битных кодировок.В этих кодировках каждая комбинация из 8 битов является допустимым символом.Поскольку каждая комбинация из 8 битов является допустимым символом в каждой 8-битной кодировке, любой произвольный текстовый файл, и фактически любой произвольный файл вообще является действительным текстовым файлом в любая 8-битная кодировка.
Например, в ISO 8859-15 0xA4
- знак евро €
.В ISO 8859-1, CP1252 и Unicode 0xA4
- это международный знак валюты ¤
.Итак, если у вас есть файл, который содержит 0xA4
, вы не можете знать, является ли это ISO 8859-15, ISO 8859-1, CP1252, одна половина символа в UTF-16, одна четверть символа в UTF-32середина многобайтовой последовательности в UTF-8 или одна из многих других возможностей.