![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 11.08.2011
Сообщений: 67
|
![]()
Здравствуйте. Хотелось бы в своей программе реализовать поддержку для АВТОопределения различных возможных текстовых кодировок, например так, как это происходит в небезызвестном текст. блокноте AkelPad, ну или Word.. Собственно, саму поддержку конвертирования при открытии и сохранении в оба направления уже сделал.. Но выбирать при открытии файла , каждый раз вручную, из множества системых кодировок нужную (ту, которой закодирован файл), как-то утомительно.
Можно ли как-то автоматизировать сей процесс, скажем, подключением какой-либо сторонней библиотеки для этих целей, если такая есть. Наподобии iconv.dll, но специализирущейся именно на автораспознавании? Сам функционал iconv.dll уже сделал программно. Или же все придется ручками писать.. ![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
анализируете первых 5-10 символов текста на принадлежность. Побеждает большинство.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 21.04.2014
Сообщений: 115
|
![]()
В общем случае невозможно, только эмпирики ( http://blogs.msdn.com/b/oldnewthing/...7/2158334.aspx ).
Всякие приведения к UTF-8 могут доложить вам о том, что конверсия провалилась или обнаружены некорректные последовательности (там по стандарту что-то типа EF-BF-BD лепится штоле). |
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 11.08.2011
Сообщений: 67
|
![]() Цитата:
Вообще хотелось бы, конечно, некий dll аналог или готовый универсальный / несовсем модуль, если существует (наверняка есть, вопрос ведь достаточно актуальный, но найти так и не смог пока). Времени просто не так много... ![]() Ну коли нет готового.. Что ж, будем писать. |
|
![]() |
![]() |
![]() |
#5 |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]()
Самое простое -- попытка раскодировать текст как UTF-8, а если не получилось, считать его некой legacy-кодировкой, значение которой берется из настроек или системного окружения. В юникодных версиях Delphi это значение хранится в системной переменной DefaultUnicodeCodePage.
В разработке: воспроизводственный контур ИТ
|
![]() |
![]() |
![]() |
#6 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
а какие кодировки нужны?
я писал вручную вероятностный код распознавания, но кодировок было всего 4. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 11.08.2011
Сообщений: 67
|
![]()
Да, но ведь встречаются кодировки где не указан флаг принадлежности в отличие от UTF кодировки в самом начале файла. Как можно идентифицировать такой образец по первым 5-10 байтам?
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 11.08.2011
Сообщений: 67
|
![]()
В идеале все и вне зависимости от локали. Или хотя бы те, что вскрываются каким-либо минимальным алгоритмом и результат их работы приближенно достоверен. Но понимаю, что это утопия, поэтому буду рад и качественной связке ansi, iso, win и т.д. Просто я предусмотрел memo поле в стандартом диалоге открытия, поэтому желатен вариант распознавания не привязанный к обьему текста, т.е не статистический, иначе диалог здорово притормаживает. Попробал некоторые из них (DRKB), не очень хорошо справляются.
|
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
кодировки | Ekzamenator | HTML и CSS | 3 | 31.03.2014 22:01 |
Кодировки с++ | Den4ik5 | Общие вопросы C/C++ | 1 | 11.12.2012 22:07 |
Кодировки | chandrasecar | БД в Delphi | 2 | 13.11.2010 23:13 |
Кодировки | jungle | Операционные системы общие вопросы | 8 | 08.09.2009 09:31 |
Кодировки | BOBAH13 | Общие вопросы Delphi | 8 | 29.08.2008 14:20 |