Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Надо определить в какой кодировке, текстовый файл  
V
    Опции темы
Puoar
Дата 8.12.2007, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 10.11.2007

Репутация: нет
Всего: 1



Как определить в какой закодирован анси или аски 
PM MAIL   Вверх
ksili
Дата 8.12.2007, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



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


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Cycle
Дата 8.12.2007, 23:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 1.12.2007

Репутация: 3
Всего: 3



ksili правильно говорит, что нужно использовать частотный анализ. Если речь идет о тексте на русском, то достаточно посчитать частоту появления буквы "а" (достаточно часто употребляемая) в одной кодировке и другой и на основании этого делать выводы. Если речь идет о более сложной ситуации, то лучше хранить среднюю частоту каждого символа и делать кореляционный анализ.

Второй метод, который прокатил в моем случае, заключается в проверке на недопустимость каки-либо символов. Например символ с кодом 0xA0 в ДОСе - это символ "а", а в кодировке Виндовс - это неразрывный пробел. Неразрывный пробел врядли можно встретить в БД, на этом основании я делал, вывод, какая это кодировка.

В любом случае все эти способы не дают 100% гарантии, особенно на маленьких объемах текста, поэтому я бы оставил пользователю возможность исправить ошибку. Удачи.
PM MAIL   Вверх
ksili
Дата 10.12.2007, 05:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



По-моему в русском языке самая часто встречающаяся буква - 'о'. Есть конечно вычисленные частоты встречаемости символов в различных языках (и даже для разных стилистик текста), которые справдливы для больших текстов. Но можно анализировать не по частотам всех символов, а по некоторым наиболее часто встречающимся. Для того чтобы запомнить такие символы есть специальные фразы.
В русском языке - ЛИТР НА СЕНОВАЛЕ
В английском - HONDA TETRIS
все буквы в этих словах являются наиболее встречающимися


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Puoar
Дата 15.12.2007, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 10.11.2007

Репутация: нет
Всего: 1



Спасибо всем кто ответил! Нда я думал есть способы поконкретней. Неужели в разных блокнотах используются эти методы.. :]
PM MAIL   Вверх
Puoar
Дата 15.12.2007, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 10.11.2007

Репутация: нет
Всего: 1



Ёпрст

Это сообщение отредактировал(а) Puoar - 15.12.2007, 10:41
PM MAIL   Вверх
ksili
Дата 16.12.2007, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Цитата(Puoar @  15.12.2007,  12:33 Найти цитируемый пост)
Неужели в разных блокнотах используются эти методы

Ну сам понимаешь, если бы был конкретный способ, все эти блокноты никогда бы не ошибались с кодировкой, а бывает откроешь файл, а там чушь какая-то - приходится кодировку переключать


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
jonie
Дата 17.12.2007, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



фалы с UTF8 часто маркируются двумя байтами вначале.
для UCS-2 два байта на символ. один из символов - указатель алфавита, притом что анг - 0, рус - тоже входит в "служебную часть байтов"
а так - частотный анализ. Тупо взять словарь даля, составить частотые характеристики и дальше думать)... 


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0762 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.