| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Иероглифы вместо русского текста в DBGrid |
| Автор: Vstanka 20.8.2013, 13:46 | ||
| Имеется старый проект, который необходимо перевести на Embarcadero C++ Builder XE, БД на Sybase, для отображения данных используются либо компонент TDBGrid, либо сторонний TDBGridView. Дело в том, что на клиенте русские символы в таблицах отображаются иероглифами, хотя кодировка БД и клиента одна - cp1251. Причем, в дебаге я вижу, что из БД пришел русский текст. Т.е. на событие OnGetCellText получаю:
В Watch листе вижу что все OK, русский текст, но в итоге в самой таблице отображаются иероглифы.. Вроде, это происходит из-за того, что Embarcadero заточен больше на работу с UnicodeString. Не могу найти, как решить проблему отображения. В таблице Font->Charset установлен DEFAULT_CHARSET, пробовала поставить RUSSIAN_CHARSET - не помогает.. |
| Автор: Vstanka 23.8.2013, 15:44 |
| Проблема решена: в старом проекте в метод OnGetCellText передавался параметр AnsiString, а в Embarcadero C++ Builder XE требуется UnicodeString. Поменяла на UnicodeString, и вуаля, все работает. |