PDA

Просмотр полной версии : Delphi 7 и MySQL (проблема с кодировкой)


Kilatif
07.10.2010, 12:26
Хочу решить такую задачку. Вот только не могу понять как. Изрыл гугл, ничего не помогает. Собственно вот в чем проблема...

Мне нужно в делфе использовать мускул. Для это я использовал компонент ZeosDBO 6.6.6. Сконектить их удалось без проблем, но проблема появилась, когда я захотел вывести поле из мускула, в котором содержится русскоязычный текст, в (допустим) Edit или Memo Delphi. Когда я хочу вывести, то вместо нормального текста появляются вопросы.

Использую Delphi 7, MySQL 8. В мускуле, в тех полях, которые хочу просмотреть, стоит кодировка utf8_general_ci.

Кто знает в чем проблема и как ее исправить?
Возможно указал не все нужные данные, которые использую, если что спросите - скажу.

P.S. Использовал стандартный UTF8ToAnsi - безрезультатно, выдает тоже самое. Делал так:
Memo2.Lines.Add(UTF8ToAnsi(DataSet.Fields[0].Value));

P.P.S. Я предполагаю, что трабла в самом Dataset'е (TZQuery), может там не указал кодировку где... потому что в Watche, когда смотрю тот же DataSet.Fields[0].Value, тоже появляются вопросы. Все нужные переменные объявляю динамически.

J-Fobos
07.10.2010, 17:52
Ну я всего пару раз делал на делфи управление мускулом и не большой специалист в этом. Я пользовался таким компонентом:
http://www.vitaliy.org/Project/View/40

Kilatif
08.10.2010, 00:31
А проблемы с кодировкой у тебя были? Т.е. кириллические символы у тебя нормально отображались? И если остались примеры работы с этой компонентой, а то в мускуле я тоже не знаток ^_^

J-Fobos
08.10.2010, 00:39
Проблем не было, только база у меня была в Ansi. Примеров к сожалению не осталось, давненько я делал. Просто понял что на пхп работать с мускулом намного проще, знать почти ничего не надо :)

Kilatif
09.10.2010, 01:05
Эм.. а как ты таблицы в кодировку Ansi поставил? оО

J-Fobos
09.10.2010, 18:10
При создании базы (не таблиц, а целой базы) указывается кодировка

CREATE DATABASE [IF NOT EXISTS] db_name [CHARACTER SET charset] [COLLATE collation];

Kilatif
10.10.2010, 01:11
Спасибо, буду знать на будущее, а пока я сделал немного по другому, но там тоже меняется кодировка в самом мускуле

Maxno
10.10.2010, 13:41
сразу после удачного соединения, выполнить запрос - "SET NAMES cp1251;" вместо cp1251 - нужная кодировка поддерживаемая мускулом. и вообще вроде в самом соединении с базой в зеосе тоже кодировка настраивается... если не ошибаюсь.