Так как стандартной у пхп для этого нет - хочу попробовать навалять свою С чего начать, куда рыть, по каким признакам определяется кодировка? п/с неужели все так сложно или не востребовано, что у пхп нет ничего стандартного?
igordata +1 inline дело в том, что обычно обмен происходит всегда в единой кодировке - UTF-8, немного реже - cp1251. потому задачи определять кодировку не стоит. По теме - самая простейшая проверка - посмотреть какие символы встречаются. Если встречается символ с кодом больше 128, то значит используется какая-либо локальная кодировка (т.е. все цифры, английские буквы и знаки препинания испльзуют коды меньше 128). Затем смотрим является ли это UTF-8 (по структуре можешь определить, ищи в википедии). После этого перебираем остальные кодировки на словосочетания для конкретного языка (в данном случае - русского). Посмотри как работает PuntoSwitcher, почитай о механизме определения (в справке к программе прилагается) на основе не встречающихся слогов в русском языке