посоветуйте, плз, оптимальный алгоритм конвертации массива данных в заданную таблицу перекодировки(кои8,866,1251) ?? как определить заранее неизвесную кодировку входного массива (аля "штирлиц")?
диапанозы в общем случае, "стандартные" 80-0FFh, но потребуется решение и с юникодом (8 ->16 и обратно) слабо пред-ХЗ-уемая.. ога, пацыба, почитаю сырцы.., нада переписать на асм нужные места, у меня объёмы большие.. Y_Mur не хотелось бы, боюсь сервак приляжет..
dekloper Во-первых я бы посмотрел в сорону http://en.wikipedia.org/wiki/AdaBoost А так очень легко собираешь статистику и проверяешь разлиные тесты. Можно просто корреляцию посчитать можно взять вероятности стречи сиволов посчитать сумму для разных кодировок в которой больше наброла та и кодировка. Можно по формуле Байеса сравнить. Можно нейронные сети задействовать.
Подавляющее большинство программ отличают КОИ8 от вендовой наводя статистику использования верхнего\нижнего регистра. Если большинство символов в верхнем регистре, значит кодировка определена неправильно. Естественно, если текст набран в верхнем регистре, кодировка будет определена неправильно. Этот метод можно доработать, проверяя регистр первых букв слов. Если первая буква заглавная, а затем идут строчные - кодировка определена верно. Отличить вынь\КОИ от нативной не составляет вообще никакой сложности, по набору используемых символов. Правда эти тексты могут содержать псевдографику, которая может сбить алгоритм с толку, но это можно решить анализом последовательностей и стат. обработкой.