http://www.php.net/mb_detect_encoding
Встроенная в PHP функция. Используется для многобайтовых кодировок. НЕ понимает кодировки windows-1251, koi-8r и т.п.
Теория
Иван Рощин. Автоматическое определение кодировки текста
http://ivr.webzone.ru/articles/alt_win/
Как отличить кодировку ALT (альтернативная) от windows-1251. Приведена таблица частот встречаемости разных букв в тексте на русском языке. http://ivr.webzone.ru/articles/defcod_2/
Как отличить ALT, windows-1251 и koi-8r. Используется метод анализа допустимых двухбуквенных последовательностей в русском языке.