Официальный форум СВД Встраиваемые Системы
09 Декабря, 2016, 02:58:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите, пожалуйста. Проблема с кодировк  (Прочитано 798 раз)
Михаил Скачков
Интересующийся

Сообщений: 2


« : 10 Сентября, 2012, 09:08:50 »

Доброго дня!

Столкнулся с проблемой, собственными силами с которой справиться вряд ли получится.

Под QNX Neutrino 6.5 на QNX Momentics пишу приложение. Приложение взаимодействует с базой данных СУБД Линтер через lincppapi. В базе данные кириллические и хранятся в кодировке CP866. Из приложения делаю запрос к базе, перекодирую в UTF8 и вывожу на форму.
Возможны 2 варианта:
1) запускаем приложение из Momentics. При этом из базы возвращаются вопросительные знаки, на форме - квадратики.
2) копирую исполняемый файл в QNX, запускаю оттуда - всё работает как часы.

Что пробовал:
1) перекодировать исходники в другую кодировку. Попробовал все варианты. Проблема осталась.
2) вывожу int значение некоторых букв сразу после считывания строки из курсора (то есть до перекодирования в UTF8). Результат 63. То есть из базы сразу идут "?", то есть эта проблема не является проблемой перекодирования.

Вопрос: чем же таким отличается запуск приложения из Momentics, что возникает такая проблема? Как её можно решить?
Проблема, конечно, не столь серьёзна в плане поставки конечного продукта, но отладку значительно затрудняет.

И ещё. Это проблема какой-то неправильной настройки связи Neutrino-Momentics, или проблема базы данных? Грубо говоря, кому в тех поддержку мне об этом писать?

Спасибо.
« Последнее редактирование: 10 Сентября, 2012, 09:24:43 от Михаил Скачков » Записан
Михаил Скачков
Интересующийся

Сообщений: 2


« Ответ #1 : 10 Сентября, 2012, 10:28:12 »

Заработало  Smiley

Если интересно, то проблема была с подключением к базе. Видимо, кодировка подключения выбиралась системная, так как не была указана явно. И, в случае запуска из Momentics, кодировка была виндовская и не ср866.
Проблема решилась изменением строки
pConnect->Connect((char *)"SYSTEM", 0, (char *)"MANAGER", 0, NULL, mAutocommit);
на строку
pConnect->ConnectCS((char *)"SYSTEM", 0, (char *)"MANAGER", 0, NULL, (char *)"CP866", mAutocommit);
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2016 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 15 Ноября, 2016, 19:24:44