Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2011, 04:39   #1
Freeman
Пользователь
 
Регистрация: 05.02.2008
Сообщений: 17
По умолчанию UnicodeString - кодирование русских символов.

Доброго времени суток.

Прошу помощи.

Использую С++ Builder 2010, win7
Соединяюсь с локальной MySql 5.1 с помощью TSQLConnection->TSQLDataSet

charsets:
Код:
character_set_results='cp1251';
character_set_client='cp1251';
character_set_connection='utf8';
База, соответсвенно, в utf8;

Чтобы выполнить запрос использую TSQLDataSet->CommandText
CommandText - указатель на объект типа UnicodeString

Как известно, UnicodeString хранит WideChar.
Русские буквы кодируются 2 байтами.

Так выглядит запрос:
Код:
TSQLDataSet->CommandText = "select * from teachers where name=\'Зима\';";
На стороне MySql пришедший запрос выглядит следуюзим образом:
Код:
select * from teachers where name='\xC7\xE8\xEC\xE0'
Английские буквы выглядят нормально, а русские в виде их кодов в CP1251, соответственно запрос не выполняется должным образом.

Как заставить UnicodeString кодировать русские буквы в CP1251, как это делает AnsiString (в 1 байт) и нужно ли это?
Untitled-1.jpg

Есть ли другой выход, чтобы заставить работать запросы с русскими символами?

Очень надеюсь на вашу помощь.

Последний раз редактировалось Freeman; 14.06.2011 в 04:53.
Freeman вне форума Ответить с цитированием
Старый 14.06.2011, 04:55   #2
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Код:
TSQLDataSet->CommandText = L"select * from teachers where name=\'Зима\';";
Не?
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 14.06.2011, 05:08   #3
Freeman
Пользователь
 
Регистрация: 05.02.2008
Сообщений: 17
По умолчанию

Пробовал - все также.
Untitled-2.jpg
Freeman вне форума Ответить с цитированием
Старый 15.06.2011, 03:32   #4
Freeman
Пользователь
 
Регистрация: 05.02.2008
Сообщений: 17
По умолчанию

Заюзал MySQL C++ Connector вместо dbExpress - ненарадуюсь

Проблема решена.
Freeman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод русских символов в консоль fs444 Общие вопросы C/C++ 10 23.02.2016 10:29
Вывод русских символов из MSSQL DimaKGD PHP 8 06.06.2015 10:09
Кодирование симвОлов Altera Свободное общение 15 24.11.2009 15:22
Не та кодировка русских символов в программах Linux Alex Cones Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 11 18.09.2009 21:44