[mdk-re] Re: [mdk-re] Как определить кодировку?

=?iso-8859-1?q?denf_=CE=C1_novosoft=2Eru?= =?iso-8859-1?q?denf_=CE=C1_novosoft=2Eru?=
Чт Авг 2 14:23:13 MSD 2001


08/02/2001 03:35:11 PM mandrake-russian-admin wrote:
>Sergey Degtyaryov wrote:
>>
>> Доброго времени суток, Sergey,
>>
>> 02.08.2001 в 12:16 Вы сказали буквально следующее:
>>
>> SD> Доброго времени суток, cornet,
>>
>> SD> 02.08.2001 в 11:52 Вы сказали буквально следующее:
>>
>> c>> Буду рад если я ошибаюсь и кто то скажет как можно определить
>> c>> кодировку обычного текстовика кроме как наметанным глазом.
>>
>> SD> Это можно и нужно использовать.
>>
>> Да, конвертируется регистр букв русского алфавита.
>> Таким образом, поставив, например, 50% - как уровень количества
>> заглавных букв, анализируем текст. Получили больше 50% - текст надо
>> перекодировать, получили меньше - открыли правильно.
>> 50% - из головы, но думается, что вполне подойдет.
>> Тексты, естественно средние, крайности вроде ПИСЕМ О НЕМЕДЛЕННОМ
>> СПАСЕНИИ ОТ ЭТОГО ЛИНУКСА распознаваться не будут.
>> Естественно все это относится к koi8 и win1251
>
>Вот именно! Это все _эвристические_ методы :-(( и я очень
>сомневаюсь, что кто то сможет предложить строгие математические,
>подходящие для любого текста и любой кодировки фактической и
>отображаемой.
Строгие медоты есть - анализ  количества определенных символов в тексте,
так, например, буква "а" встречается гораздо чаще, чем "щ".
Для кажного языка существуют таблицы вероятностей. Таким образом можно
"расшифровывать" двойные неправильные перекодировки и т.п.
Разумеется, это будет хорошо работать только для достаточно длинного и
осмысленного текста. килобайт букв "А" перекодировать не удастся ;-)



Подробная информация о списке рассылки community