LIME пишет:ниже в коментах в мануале бып пример безошибочного определения
Vladimir Kheifets пишет:2. Замечал, mb_check_encoding, бывает ошибается.
Да потому что это не замечать надо, а слегка задуматься над тем, что же такое кодировка текста.
Вы программа и у вас есть 13 байт данных, которые надо показать пользователю. Как их показать? Какому байту надо рисовать какое графическое представление?
Та хрен его знает! В этих 13 байтах нет ни одного намёка на это. Байт \xD0 имеет смысл в огромном множестве кодировок и в большинстве из них этот смысл для человека будет разный. А в других кодировках этот байт вовсе не имеет графического отображения.
Программным кодом кодировку определить безошибочно нельзя. Потому что бинарное представление всех кодировок ложится в одно и то же самое множество байтов. Различить какой-нибудь windows-1251 и windows-1250 можно только зная что-нибудь об исходном тексте. Например, что в тексте 1251 наверняка будет больше байтов из диапазона \xC0-\xFF, т.к. в этом диапазоне вся кириллица и расположена, в отличии от 1250, который активно использует латинский алфавит из первых 7 бит кодировки идентичных ASCII.
Хотите точно знать в какой кодировке текст выглядит нормально - посмотрите его глазами в разных кодировках. А машине всё равно что рисовать.
PS: обе темы внимательно не читал. Потому что решение одно - разобраться, где в какой кодировке данные лежат, в каких запрашиваются, что отдаётся в заголовках и привести этот бардак в любому общему знаменателю.