С-но вопрос - хочу попробовать реализовать алгоритм Хаффмана на PHP. Решил для начала составить таблицу частотности. Пробую следующий код:
while (!feof($handle)) {
$contents = fread($handle, $fragment_size);
for($i=0; $i<strlen($contents); $i++){
$freqTable[ord($contents[$i])]++;
}
}
foreach ($freqTable as $k => $v){
echo chr($k)." - $v<br>";
}
т.е. у нас массив из 256 элементов. Номер элемента соответствует ASCII коду. В итоге, в цикле у меня вместо нормальных символов(а я сканирую текстовый файл) выводится тарабарщина. Я так понимаю, проблема в том, что у нас текст может быть, например, в юникоде. Я пробовал разобраться, как узнать, в какой именно кодировке пришел текст. Насколько я понял, нет стопроцентно верного способа определить кодировку. Т.е. текстовые редакторы анализируют текст в различных кодировках и находят какие-то последовательности, имеющие смысл и в зависимости от этого отображают текст в нужной кодировке.
Суть вопроса - мне нужно универсальное решение, не зависящее от кодировки, чтобы составить таблицу частотности. Причем, в дальнейшем, предполагается процесс распаковки, т.е. мне нужно записать данные в той же кодировке.
Пните пожалуйста в нужную сторону. Возможно я просто что-то не понимаю и дофига лишнего додумал, а все на самом деле проще. Заранее спасибо за помощь