Not only russian codepage detect

xlex

Guest
Not only russian codepage detect

В форуме видел различные варианты определения кодировок (скрытые поля, статистические варианты), но только для русского языка. А есть ли какая реализация (если не реализации, то хотя бы алгоритм) для определения кодировки вообще (английского, русского, японского и т.д.)? То есть нечто вроде того, что пытается делать Internet Explorer, если не встречает никакого намёка на кодировку ни в ответе сервера, ни в HTML.

Заранее спасибо.
 

SiMM

Новичок
> В форуме видел различные варианты определения кодировок ... статистические ... А есть ли какая реализация ... хотя бы алгоритм
Ну и чем это тебе не алгоритм?

> То есть нечто вроде того, что пытается делать Internet Explorer
[m]mt_rand[/m]? ;)
 

xlex

Guest
SiMM, это, конечно, алгоритмы, но они только для русского языка - не подходит.

>mt_rand?
Кнечно, нет =)
 

SiMM

Новичок
> SiMM, это, конечно, алгоритмы, но они только для русского языка - не подходит.
А тебе не приходило в голову, что алгоритм не зависит от каких-то констант? Идея-то остаётся той же - статистика.
 

xlex

Guest
SiMM, приходила.
Тогда уточню - есть ли (известно ли) решение этой задачи/алгоритма для других языков?
 

SiMM

Новичок
О5 25. Произведи статистическое исследование на n-ном количестве среднестатистических текстов (сколько раз встречался тот или иной байт), затем при обработке текста будешь использовать полученный результат и делать выводы о принадлежности исследуемого текста к той или иной таблице кодировок. Другого самоката для этой задачи, имхо, быть не может. Сразу скажу - на очень коротких текстах алгоритм будет врать.
 

xlex

Guest
>О5 25
Это что значит? =)

За "самокат" =) спасибо, видимо, так и придётся делать (думал, может есть что готовое).
 

SiMM

Новичок
У Far'а есть какие-то готовые таблички (dist.*.reg). Описания того, как ими пользуется сам Far, правда, нет - есть только программа их получения.
 

Silent

Новичок
Только для более надежной работы лучше считать не статистику появления отдельных байтов, а двухбайтовых сочетаний (трехбайтовые было бы еще лучше, но тогда таблицы будут много места занимать). И тогда даже по одной строке можно достаточно точно определить кодировку.
 
Сверху