В двух словах -- берётся какое-нибудь очень часто встречаемое характерное для языка символосочетание (например одиночные "и", "или", "для", "на" для русского) и проверяется его наличие в различных кодировках.
Но это один из способов.
Я, например, писал скрипт, который по словарю проверяет каждое слово:
http://linux.alhimia.ru/projects/bash-scripts/defenc/
Можно еще на основе достаточно большого текста составить таблицу встречаемости русских(или еще каких) букв и сверять с так-же составленной таблицей по определяемому тексту, так можно узнать какой бинарный код имеет та или иная буква и по этому определить кодировку.
Как и любой подход на основе статистики требует достаточно большого текста для удачного определения.
ЗЫ См. "Пляшущие человечки" - расказ по Шерлока Холмса - научно-популярно изложено.
RusXMMS основан как раз на статистике, но большого текста как раз не требуется... Все русские кодировки довольно сильно различаются между собой и слова от 4х букв распознаются с 100% точностью. Я могу посоветовать просто посмотреть исходники LibRCD из проекта RusXMMS.sf.net.