Кодировка MySQL

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Кодировка MySQL

Сообщение south » 04.07.2011 10:10:07

Проблема такая. Вроде лазарус должен отображать utf8 кодировку без преобразования, но отображаются тольо вопросики.
Запрос из базы Mysql делаю через компоненту ODBCconnection. В администраторе Майскюл написано, что данные в таблицах базы в формате утф8, но никак не могу заставить лазарус отображать эти данные корректно.
south
незнакомец
 
Сообщения: 6
Зарегистрирован: 04.05.2011 10:42:35

Re: Кодировка MySQL

Сообщение jec » 04.07.2011 13:16:01

Вот это стОит почитать...
http://www.lissyara.su/articles/freebsd ... _charsets/
jec
новенький
 
Сообщения: 14
Зарегистрирован: 19.01.2011 12:57:57

Re: Кодировка MySQL

Сообщение Ism » 04.07.2011 13:50:46

Садисты

SET NAMES UTF8; при запуске

но вообщето в драйвере ODBC в настройках можно выставить.

ODBCConnection1.CharSet:='UTF8'
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Кодировка MySQL

Сообщение south » 04.07.2011 15:29:32

К несчастью не помогает. Ни SET NAMES UTF8; Ни выставоении Чарсета в одбсконнекшн. Как заколдованный... никак не хочет отобрать что либо, кроме этих вопросиков((((((
south
незнакомец
 
Сообщения: 6
Зарегистрирован: 04.05.2011 10:42:35

Re: Кодировка MySQL

Сообщение v-t-l » 04.07.2011 18:24:58

south писал(а):Запрос из базы Mysql делаю через компоненту ODBCconnection

MySQL40Connection, MySQL41Connection, MySQL50Connection - не?
v-t-l
энтузиаст
 
Сообщения: 741
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Re: Кодировка MySQL

Сообщение Владимир » 04.07.2011 21:24:13

Ism писал(а):Садисты

SET NAMES UTF8; при запуске

но вообщето в драйвере ODBC в настройках можно выставить.

ODBCConnection1.CharSet:='UTF8'

Ism ! Вы в своем репертуаре! Нельзя так. Деликатнее. Жду вас в посте по размеру и быстродействию 0.9.30 - я по глупости написал РЕШЕНО

Добавлено спустя 30 минут 43 секунды:
jec писал(а):Вот это стОит почитать...
http://www.lissyara.su/articles/freebsd ... _charsets/

Класс! Правда, форум все же про Lazarus.

Добавлено спустя 7 минут 37 секунд:
south писал(а):Проблема такая. Вроде лазарус должен отображать utf8 кодировку без преобразования, но отображаются тольо вопросики.
Запрос из базы Mysql делаю через компоненту ODBCconnection. В администраторе Майскюл написано, что данные в таблицах базы в формате утф8, но никак не могу заставить лазарус отображать эти данные корректно.

Я так понимаю, что у Вас Win-платформа. Какая версия Lazarus? Пробуйте SysToUtf8 из модуля FileUtil
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Re: Кодировка MySQL

Сообщение jec » 05.07.2011 04:49:33

Да, форум про lazarus, но пока с кодировкой майскуля не разобрался, так и было, что либо из программы "вопросики", либо phpMyAdmin этим грешит. Конечно, если к настройкам сервера нет доступа...
Мне вот нужна кроссплатформенность и серверы локальные
Абсолютно согласен с тем, что матчасть мне учить и учить. А показал ссылку, которая МНЕ помогла немного понять природу моих проблем, ну настроить сервер "под себя".
ЗЫ. Прошу прощения за отход от темы топика
jec
новенький
 
Сообщения: 14
Зарегистрирован: 19.01.2011 12:57:57

Re: Кодировка MySQL

Сообщение xcod » 05.07.2011 07:12:16

использую zeos после подключения к базе делаю ZConnection.ExecuteDirect('SET NAMES UTF8')
и кодировка приводится в порядок
xcod
постоялец
 
Сообщения: 108
Зарегистрирован: 07.08.2009 12:37:23

Re: Кодировка MySQL

Сообщение Ism » 05.07.2011 13:51:05

Вообще описанная проблема довольна странная. обычно хватает 'SET NAMES UTF8' . Если нет, то надо выяснить , в какой же всетаки кодировке сервер возвращает данные. Скорее всего все можно решить перестановкой mysql и lazarus со сносом всех настроек. Кстати вполне возможно , что в конфиге mysql есть настройки кодировок с большим приоритетом и он 'SET NAMES UTF8' игнорирует.

Кроме того существуют переменные сервера

character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8

проверьте их

попробуйте подключиться к базе вот этим http://www.sqlmanager.net/en/products/mysql/manager или http://www.devart.com/ru/dbforge/mysql/studio/ , подобрать правильные параметры
Последний раз редактировалось Ism 05.07.2011 15:39:51, всего редактировалось 3 раз(а).
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Кодировка MySQL

Сообщение GAMER » 05.07.2011 14:00:25

Кроме того, бывают случаи, что в таблицах с декларированной одной кодировкой, данные хранятся в другой.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Кодировка MySQL

Сообщение Ism » 05.07.2011 15:45:34

Лучше работать в UTF8 где только возможно. И подобных проблем не будет. А если кодировка данных другая , переворачивать в тот же utf8.
Кстати нужно внимательно проверять параметры создания базы, так как в последствии легко запутаться кто есть ху. База по умолчанию cp1251, клиент подключается в koi8, а столбцы таблицы вообще в utf8
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Кодировка MySQL

Сообщение GAMER » 05.07.2011 23:36:03

Я другое имел в виду. например говорим, что работаем в кодировке кои8, но при этом пишем в таблицу в кодировке вин1251. Другой клиент открывает таблицу в утф8 и получает бред.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Кодировка MySQL

Сообщение Ism » 05.07.2011 23:48:02

Конечно, ведь koi и cp1251 однобайтовые, а серверу все равно, что писать, лишь бы по одному символу.
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 229

Рейтинг@Mail.ru
cron