Автоматическое определение кодировки символов в Java

Кажется, это довольно проблематичная проблема, но я еще не смог найти решение; возможно, потому, что он приходит во множестве вкусов. Вот оно. Я пытаюсь прочитать некоторые файлы с разделителями-запятыми (иногда разделители могут быть немного более уникальными, чем запятые, но на данный момент запятых будет достаточно).

Предполагается, что файлы стандартизованы по всей отрасли, но в последнее время мы увидели множество разных типов файлов набора символов. Я хотел бы иметь возможность настроить BufferedReader для компенсации этого.

Что представляет собой довольно стандартный способ сделать это и определить, было ли это успешным или нет?

Мои первые мысли по этому подходу состоят в том, чтобы перебирать наборы символов simple- > complex, пока я не могу прочитать файл без исключения. Не совсем идеально, хотя...

Спасибо за внимание.