Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Кодировка. С++\С

307
16 марта 2010 года
Artem_3A
863 / / 11.04.2008
Возник такой вопрос, чисто ради интереса, как программно определить кодировку текстового файла средствами с\с++? просто в случае работы с тестом в слепую мы не знаем размер символа, два или один байт, а следовательно многие функции обработки строк могут работать не корректно, например выделение подстроки и проверка является ли символ числом.
394
16 марта 2010 года
MegaMozg
317 / / 18.03.2006
Под windows IsTextUnicode и вот, но аболютной точности не гарантирует
307
16 марта 2010 года
Artem_3A
863 / / 11.04.2008
Цитата: MegaMozg
Под windows IsTextUnicode и вот, но аболютной точности не гарантирует




да, действительно интересно, но хотелось бы не средствами винапи, а стандартными библиотеками с\с++, или можеть быть это возможно сделать уровнем ниже, на асме? недавно читал, что при кодирование уникодом первый байт как то помечается, кажется у джоэла, в его "о программировании". к тому же данная функция проверяет является ли строка юникодом, а что делать если UTF-8, UCS-2, OEM-866, Win-1251 или еще какая нить гадость???

14
16 марта 2010 года
Phodopus
3.3K / / 19.06.2008
Это в общем случае нерешаемая задача. Да, бывает в начале текста BOM но это ничего не означает. Возможно я намерянно начал 1251-текст смиволами яю. И конечно же, современные процессоры не разбираются в кодировках (это про ассемблер).
5
16 марта 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Artem_3A
да, действительно интересно, но хотелось бы не средствами винапи, а стандартными библиотеками с\с++, или можеть быть это возможно сделать уровнем ниже, на асме?

Детекторы кодировки используют всяческие эвристики. Простейшая из них: используем кодировку, которая позволяет большую часть текста представить в виде нормальных симоволов (отображаемых буквенно-цифровых литералах). Тестируется обычно не весь файл, а лишь его начало - несколько килобайт. Следующая надстройка над этой эвристикой - поиск осмысленного текста: где больше похоже на осмысленный та и нужная.

307
16 марта 2010 года
Artem_3A
863 / / 11.04.2008
ясно, спасибо, жаль, чуть разочарован.=)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог