subj. Имеется текст на русском языке, с примесью латинских символов и цифр. Как узнать (программно), в какой он кодировке (ну там 1251, КОИ и т.д.)? Первое, что пришло в голову - считать частоту использования всех символов, брать самый часто используемый (типа, это буква А) и сравнивать его код с кодом буквы А для всех известных кодировок. Но при маленьком тексте в несколько слов это не сработает. Можно искать слова по словарю или по окончаниям (ну типа комбинации букв "ющий", "ывший" и т.д.) - но это, по моему, тоже тупизм... Подкиньте идейку плз...
Как ни странно, но похоже, что этот тупизм работает... http://ivr.webzone.ru/articles/defcod_2/ Видимо, тему придется закрыть...
Я думал раньше, что есть метод, который дает стопроцентную гарантию, что кодировка определена верно. А тут выходит, что на определенных текстах можно ошибиться... Хы, надо будет попробовать поискать такое слово, которое было бы осмысленным в двух и более кодировках...
2 Stariy А чего "А" самый частый? Насколько я знаю это "О" самый частый. А подстановкой шифруют только недоразвитые клоуны, метод определения - частотый анализ ^^^ (вышеописанный "тупизьм"), - срабатывает даже на коротких текстах.
Я думаю определять можно по словам из одной буквы("а", "и"), стоящих между пробелами. Например: код "a" CP866 - A0h; utf8 - E0h код "и" CP866 - A8h; utf8 - E8h для других не проверял. только это справедливо для достаточно больших текстов, где встречаются эти союзы.