Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как распознать UTF 8 
:(
    Опции темы
artsb
Дата 12.5.2012, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(xvr @  12.5.2012,  13:43 Найти цитируемый пост)
Бывают UTF8 файлы без BOM (равно как и Unicode без него же)

Я знаю smile Поэтому и написал: "сначала проверить файл на наличие BOM, а уже потом его анализировать".
Т.е. это я описал последовательность действий одного алгоритма )

Цитата(livo @  12.5.2012,  18:52 Найти цитируемый пост)
Только вот почему-то не распознается у меня второй байт триады маркера.

Странно... У меня всё работало. Попробуйте так:
Код

const unsigned short int cusiUtf8BomSize = 3;
const unsigned char cucUtf8Bom[cusiUtf8BomSize] = { 0xEF , 0xBB , 0xBF };
// ...
if(buff.size() >= cusiUtf8BomSize && 
   memcmp(&(buff[0]), cucUtf8Bom, cusiUtf8BomSize) == 0)
{
    return 1;
}



--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
livo
Дата 13.5.2012, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Фууух, разобрался. Не зря оказывается компилятор предупреждал о сравнении signed и unsigned переменных.
Вобщем все заработало, как только я дописал оператор приведения типа:
Код

if(buff.size()>=3 &&
                        (unsigned char)buff[0]==0xEF &&
                        (unsigned char)buff[1]==0xBB &&
                        (unsigned char)buff[2]==0xBF)return 1;

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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