Как можно определить кодировку?

SPYFORCER

Новичок
Как можно определить кодировку?

Есть строка, как можно средствами ПХП определить её кодировку.. толи чтрока в УТФ, толи в ИСО, толи в КОИ ?
 

ksnk

прохожий
Нельзя!
Можно только косвенно определить, примерно так, как действует автоопределение кодировки в редакторах.
Алгоритм примерно такой:
, для каждой таблицы кодировок перчисляются символы, входящие в кодировку. Если в строке есть только они - вот оно шасте. Если не только они - конфуз...
 

Tor

Новичок
в поиск
но все методы жадные к тексту
по одному слову - частые ошибки
 

SPYFORCER

Новичок
Ok. Я в принципе так и думал... тока решил мнения других спросить.. Спасибо
 

Goodwin

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

texrdcom

Новичок
0) Тебе нужен словарь русского языка (в электроном виде :) )
1) найди допустимые сочетания символов можно 2 букв можно 3 букв в словах.
2) сохрани их в виде сочетаний байтов для эталонной кодировки - например windows-1251
3) когда анализируеш -текст - строку сначала по очереди проганяеш по различным кодировкам потом разбиваеш на тежи символы - байты и сравниваеш
4) но это сработает в 80% - на вскидку,
5) для более точной работы еще надо после пункта 4 по томуже словарю найти слова с полученной перекодированной строки.
p/s
Так можно определить текст в какой он кодировки плюс программу можно обучать - если при неверном распознаном слове - тексте разбить его на слова и записать их в тотже словарь
У меня получился базовый словать в 294000 слов естественно храниться в базе данных так как при таком обьеме поиск слов по файлу происходит долго а через базу терпимо, хотя я не довадил до конца данный алгоритм потому что то готовое показать не могу.
Будут вопросы спрашивай.
p/s _2
Соврал не много быстрея и универсальней будет сделать файл
словаря и искать исомые слова прямо в нем только что про тестил на много быстея получаеться обычным preg_match()
 

kvf77

Red Devil
народ, блин - я для кого создал целый раздел FAQ по кодировкам? Там несколько способов рабочих есть для определения кодировки!

Как дети блин:
http://phpclub.ru/faq/wakka.php?wakka=encodings&v=x3z
 

Фанат

oncle terrible
Команда форума
Это недостаток любой базы знаний.
очень трудно что-то найти.
 

kvf77

Red Devil
Фанат

ну типа PHPClub сказал, что так логичнее - в общем-то, если кто не знал, я еще и Оглавление FAQ вделал в котором очень наглядно в рамках одной страницы перечислены все разделы и подразделы FAQ, которые мною делались. Другие авторы почему-то не удосужились свои темы туда добавить пока. Ссылка на Оглавление вверху в левом углу главной страницы Вопросов и ответов
 

texrdcom

Новичок
Посмотрел фаг не чего нового от сказоного мной там нет
не буду кривить душой не которые статьи читал в инете без ссылок клуба, но все эти методы ИМЕЮТ ИЗЬЯНЫ- не срабатывают правильно при анализе пример 1) слова например ПРОБА
2) второе при анализе слова для примерра пробааааааа - юзер может прислать что угодно
Это сугобо для примера.
Все данные методы основоваються на одном сочетиния допустимых - или не допостимых сочетаний букв - в реальности на много сложнея. Поэтому надо учитывать сочетания символов и обезательно производить поиск по словам с словарем!. Естественно не нада анализировать тупо 3м текста а сначала получить с него 10 слов и про анализировать если кодировка не определена анализируем еще 20 слов - если есть если и после это нет помечаем как не разпознаную юзер в ручном режиме перекодирывает в рускоязычные кодировки и если удачно добавляет слова в словарь что бы не пугал резмер словаря для примера привиду данные поиск в словаре с набором слов 294000 искалось 1000слов с них найденно 998 - поиск специально задавался для теста проходил меньше секунды!
искал так:
PHP:
if(false!==strpos($slovar, $array_slov[$i]))
{

}
// Слова виглядели в таком формате пробелы не лишние!
$array_slov[$i]=' проба ';
// Файл словаря выглядет так 
// проба текст пробовали .
p/s
Я искал в клубе но на данный раздел фао не нарывался!
Где на сайте есть прямая ссылка не него?
 

kvf77

Red Devil
texrdcom

я не понял - тебе нафига такой монстр нужен?
для точной работы подобного скрипта требуется достаточное количество контента.
чаще быстрее поставить кодировку один раз вручную
 

texrdcom

Новичок
Лично я делал его для системы котора анализирует почтовые сообщения на сервере,
Для примера если ты получаеш много электронных писем я например на работе около 200-300 в день и при просмотре очень часто натыкался на письма в которых указана кодировка которая не соотвествует текущей кодировки письма!
А задача решалась чтобы все письма держались в одной базе в одной кодировке - чтобы призводить нормальный поиск - ручной, автоматический по данной базе. Это монст тратит около секунды на анализ кодировки определяет в данный момент 99% и не такой он уже монст просто словарь занимает 1.м сам скрипт 50кб вроде не монстр ? :)
Плюс как я и говорил с помощью данного метода можно обучать данный словарь - дописовать слова которых нет в словаре.

-~{}~ 30.08.05 14:02:

Я его сделаю не много универсальным и обезательно выложу куда не буть в инет дам ссылку, через пару дней.

-~{}~ 30.08.05 14:04:

Фанат
Не трудно найти в базе а трудно найти в данном форуме - (это замечание)
Если бы была возможнсоть искать среди найденного я думаю это сняло бы кучу вопрос в таких ламеров как я :)
 
Сверху