|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Сен 7, 2004 16:56:50 subj. Имеется текст на русском языке, с примесью латинских символов и цифр. Как узнать (программно), в какой он кодировке (ну там 1251, КОИ и т.д.)? Первое, что пришло в голову - считать частоту использования всех символов, брать самый часто используемый (типа, это буква А) и сравнивать его код с кодом буквы А для всех известных кодировок. Но при маленьком тексте в несколько слов это не сработает. Можно искать слова по словарю или по окончаниям (ну типа комбинации букв "ющий", "ывший" и т.д.) - но это, по моему, тоже тупизм... Подкиньте идейку плз... |
|
|
Дата: Сен 7, 2004 18:23:31 Как ни странно, но похоже, что этот тупизм работает... http://ivr.webzone.ru/articles/defcod_2/ Видимо, тему придется закрыть... |
|
|
Дата: Сен 7, 2004 18:37:34 ага, даже FAR, кажется, так и определяет кодировку |
|
|
Дата: Сен 7, 2004 19:40:56 А Штирлиц? |
|
|
Дата: Сен 8, 2004 04:12:46 Дык это не тупизм, так и простые шифры расшифровывают. |
|
|
Дата: Сен 8, 2004 14:17:41 Я думал раньше, что есть метод, который дает стопроцентную гарантию, что кодировка определена верно. А тут выходит, что на определенных текстах можно ошибиться... Хы, надо будет попробовать поискать такое слово, которое было бы осмысленным в двух и более кодировках... |
|
|
Дата: Сен 8, 2004 22:12:27 2 Stariy А чего "А" самый частый? Насколько я знаю это "О" самый частый. А подстановкой шифруют только недоразвитые клоуны, метод определения - частотый анализ ^^^ (вышеописанный "тупизьм"), - срабатывает даже на коротких текстах. |
|
|
Дата: Сен 8, 2004 22:36:29 Правильно, "О". Это я ступил малость. |
|
|
Дата: Сен 12, 2004 16:44:07 |
|
|
Дата: Сен 13, 2004 00:53:22 · Поправил: Johnikum Я думаю определять можно по словам из одной буквы("а", "и"), стоящих между пробелами. Например: код "a" CP866 - A0h; CP1251 - E0h код "и" CP866 - A8h; CP1251 - E8h для других не проверял. только это справедливо для достаточно больших текстов, где встречаются эти союзы. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.131 |