| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
Есть строка текста русского в неизвестной кодировке.
Нужно распознать, что это за кодировка (win-1251, koi8-r, etc) Есть ли какие стандартные средства (ну или не очень стандартные) в ПХП? Может модуль какой или набор библиотек? Была идея разработать набор своих функций с методом частотного анализа текса, но в общем даже не знаю, может есть чего готовое? |
|
|
# 2 |
|
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Не скажу, что способ изящен, но поставленную задачу он решает.
1. Перекодируем во все известные нам кодировки (точнее из них в ту, в которой работаем) 2. Преобразуем к строчным, убираем \s\t\r\n 3. Считаем буковки. Если буковок больше (strlen/4)*3, то на 99% кодировка опознана. PS: Сразу скажу, что способ придуман мной, и возможно существуют более прогрессивные. |
|
|
|
|
# 3 |
|
::VIP::
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
AleXXXSoft
Автоматическое определение кодировки текста — 2 - теория Простой(и ненадежный) алгоритм определения кодировки русского текста - практика, но другой вариант Также здесь есть на си и на перле аналогичные алгоритмы
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti |
|
|
|
|
# 4 |
|
Guest
Сообщения: n/a
|
все тоже самое я удачно обнаружил в Яндексе самостоятельно, скачал, установил и попробовал, но слишком тормозные скрипты.
Вот понравилось что: http://www.rusf.ru/books/yo/xcode.html но так влом переносить на ПХП.... видимо так и буду его вызывать..... через систем.... а вообще хотелось что-нить типа библиотеки iconv .... но видать ЖПС вышел... |
|
|
# 6 | ||
|
Guest
Сообщения: n/a
|
Цитата:
Добавлено через 37 минут: таксь... а как быть с CP1251 и KOI8-R? вот например: рЕЯР АНКЭЬНИ РЮЙНИ РЕЯР БНР Тест большой такой тест вот не определишь? Добавлено через 4 минуты: Цитата:
|
||
|
|
# 8 |
|
::VIP::
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Так в статье на webzone и предлагался подход по определению кодировке на основе анализа сочетаний букв - к тому же самому и ведете
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti |
|
|
|
|
# 9 | |
|
Guest
Сообщения: n/a
|
ура! все-таки вот ента штучка http://tony2001.phpclub.net/detect_charset/detect.phps заработала, по крайней мере локально, осталось запустить это на сервере!Цитата:
|
|
|
|
# 11 | |
|
Guest
Сообщения: n/a
|
Цитата:
Добавлено через 1 минуту: усем спасибо (пока что) |
|
|
|
# 12 |
|
::VIP::
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
RaZEr
Соотношение гласных и согласных в русской речи примерно 40% и 60% соответственно - приведенный тобой кусок как раз прекрасно подходит под эту статистику. Так что от анализа все равно никуда не деться, если хочешь получить более-менее точное определение.
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti |
|
|
|
|
# 13 | |
|
МОД-Оператор ЭВМ
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Добавлено через 2 минуты: 2 Saruman: Количество согласных в KOI больше чем в WIN. Исключения так и остаются исключениями. |
|
|
|
|
|
# 14 |
|
Guest
Сообщения: n/a
|
и снова проблемы, нашлись такие сочетания символов в текстах, что все эти умные программки неправильно определили кодировку =(
Добавлено через 3 минуты: буду пробовать реализовать вот этот алгоритм |
|
|
# 15 |
|
::VIP::
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
AleXXXSoft
Так у Тони и написано, что его алгоритм быстрый, но ненадежный. Если нужен был надежный - сразу бы за этот и брался. Добавлено через 4 минуты: Кста, вот еще только что попалось: fix-mime-charset Сам не разбирался, интересно - смотри, вдруг чем поможет.
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti |
|
|
|
|
# 16 |
|
Guest
Сообщения: n/a
|
таксь, кое-что удалось...!
Этак лирическое отступление: все эта лабуда нужна была для почтовика SquirrelMail. Так вот, при установке Локали в Win1251 все само заработало, автоматическая перекодировка и т.д., но вот интерфейс русский работать перестал, стал английским по-умолчанию. Кто-нить общался с ентой софтиной, может есть какие советы? |