Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
6 / 6 / 2
Регистрация: 02.04.2009
Сообщений: 46
1

Кракозябры при отображение русских букв в Delphi XE с компонентами ZEOSDBO7 и Ehlib

20.01.2012, 15:15. Показов 2995. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Есть проект, написан на Delphi XE,в ней стоит ZEOSDBO7, Ehlib для XE. В этом проекте есть функция, которая пишет строку в эту таблицу(кодировка таблицы utf8). В проекте есть табличка TDBGridEh, в которой отображаются данные из этой таблицы. Все вроде бы не плохо, когда делаю запрос руками. Я все строки просто преобразую Utf8Decode("строка из БД") и они нормально показываются. Но вот когда через компонент отображаю (а это мне просто необходимо) (TDBGridEh, TDataSet, TZQuery,TZConnection) данные в таблице, то вижу только кракозябры.
Не помогает прописать в TZConnection в свойствах properties следующее:
SET CLIENT_ENCODING TO cp1251;
SET character_set_client=cp1251;
character_set_connection=cp1251;
character_set_results=cp1251;
или
SET CLIENT_ENCODING TO utf8;
SET character_set_client=utf8;
character_set_connection=utf8;
character_set_results=utf8;

Не могу понять никак в каком компоненте проблема в Ehlib или в ZEOSDBO7 или проблема в самой Delphi? Помогите разобраться

Спасибо =)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2012, 15:15
Ответы с готовыми решениями:

Кракозябры по CHR вместо русских букв
Delphi XE function TUSComFox.ArrayToString(Data: TByteArray): String; Var I : Integer;...

Кракозябры вместо русских букв при выводе из БД
а как сделать чтобы русские слова выводились из бд? а то крякозябры получается

Вместо русских букв кракозябры
После отправки формы с сайта, вместо русских букв в БД кракозябры. Соответственно и на сайт...

Кракозябры вместо русских букв
Здравствуйте, столкнулся уже давненько с такой штукой, как-то раньше поставил виндовс установил...

2
6 / 6 / 2
Регистрация: 02.04.2009
Сообщений: 46
14.09.2012, 09:51  [ТС] 2
Лучший ответ Сообщение было отмечено Olix как решение

Решение

Данную проблему получилось решить только с помощью костыля. В таблице в нужной колонке в dataset необходимо ловить событие OnGetText. И в нем делать:
Delphi
1
Text:=UTF8ToString(Sender.AsWideString);
Но тут возникает проблема: при редактировании в поле исчезает весь текст.
0
1302 / 708 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
14.09.2012, 11:05 3
предлогаю, как вариант, протеcтировать сабж с обычным DBGrid, если там все будет "радужно" то уже тестировать EhLib
0
14.09.2012, 11:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.09.2012, 11:05
Помогаю со студенческими работами здесь

Кракозябры вместо русских букв в движке
Привет, подскажите пожалуста. Хотел установить движок Simple Quotes Engine. Импортировал бд,...

Непонятные кракозябры вместо русских букв
Очень странная ситуация. Пользователь вводит данные, данные через javascript методом post, ajax,...

Русифицировать консоль (кракозябры вместо русских букв)
Я начинающий в С++. Вопрос такой: почему вместо того что вводишь с клавиатуры, выводится совсем не...

Что это за кракозябры вместо русских букв?
Народ, как решить проблему с иероглифами в свойствах сетевой беспроводной карты?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru