Automatic detect encoding in php (cp1251, UTF-8) and mb_detect_encoding.
Автоматическое распознавание кодировки текста - Automatic detect encoding in php (cp1251, UTF-8).
Функция mb_detect_encoding в php обрабатывает только мультибайтные строки, т.е. если ей подсунуть строку в кодировке cp1251 (windows-1251) то встроенная функция php mb_detect_encoding вернет UTF-8, а это не правильный результат.
Ищем костыли и находим ответы здесь:
http://phpclub.ru/faq/CharsetDetection
http://popoff.donetsk.ua/text/work/libs/a/charset/