Еще один вариант, очень скоро приходящий, извините:
http://www.architectshack.com/TextFileEncodingDetector.ashx
Этот небольшой C # -например, класс использует BOMS, если он присутствует, пытается автоматически обнаружить возможные кодировки unicode в противном случае и возвращается, если ни одно из кодировок Unicode не возможно или вероятно.
Похоже, что UTF8Checker, упомянутый выше, делает что-то подобное, но Я думаю, что это немного шире по объему - вместо UTF8 он также проверяет другие возможные кодировки Unicode (UTF-16 LE или BE), которые могут отсутствовать спецификацией.
Надеюсь, это поможет кому-то!