Latin-1 (ISO-8859-1) и его расширение Windows CP-1252 обязательно должны поддерживаться для западных пользователей. Можно утверждать, что UTF-8 - лучший выбор, но у людей часто нет такого выбора. Для китайских пользователей потребуется GB-18030, и помните, что есть японцы, русские и греки, которые имеют свои собственные кодировки помимо Unicode в кодировке UTF-8.
Что касается обнаружения, большинство кодировок не могут быть обнаружены безопасно. В некоторых (например, Latin-1) некоторые значения байтов просто недопустимы. В UTF-8 может встречаться любое значение байта, но не каждая последовательность значений байтов. Однако на практике вы не будете выполнять декодирование самостоятельно, а будете использовать библиотеку кодирования / декодирования, пытаться декодировать и отлавливать ошибки. Так почему бы не поддерживать все кодировки, которые поддерживает эта библиотека?
Вы также можете разработать эвристику, например, декодирование для определенной кодировки, а затем проверить результат на наличие странных символов или комбинаций символов или частоты таких символов. Но это никогда не будет безопасным, и я согласен с Вилксом, что ты не должен беспокоиться. По моему опыту, люди обычно знают, что файл имеет определенную кодировку или что возможны только два или три. Поэтому, если они увидят, что вы выбрали неправильный вариант, они могут легко адаптироваться. И посмотрите на других редакторов. Самое умное решение не всегда самое лучшее, особенно если люди привыкли к другим программам.