Кодировка MySQL

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

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

Ответить
south
незнакомец
Сообщения: 6
Зарегистрирован: 04.05.2011 10:42:35

Кодировка MySQL

Сообщение south »

Проблема такая. Вроде лазарус должен отображать utf8 кодировку без преобразования, но отображаются тольо вопросики.
Запрос из базы Mysql делаю через компоненту ODBCconnection. В администраторе Майскюл написано, что данные в таблицах базы в формате утф8, но никак не могу заставить лазарус отображать эти данные корректно.
jec
новенький
Сообщения: 14
Зарегистрирован: 19.01.2011 11:57:57

Сообщение jec »

Вот это стОит почитать...
http://www.lissyara.su/articles/freebsd ... _charsets/
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

Садисты

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

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

ODBCConnection1.CharSet:='UTF8'
south
незнакомец
Сообщения: 6
Зарегистрирован: 04.05.2011 10:42:35

Сообщение south »

К несчастью не помогает. Ни SET NAMES UTF8; Ни выставоении Чарсета в одбсконнекшн. Как заколдованный... никак не хочет отобрать что либо, кроме этих вопросиков((((((
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

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

MySQL40Connection, MySQL41Connection, MySQL50Connection - не?
Владимир
постоялец
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва

Сообщение Владимир »

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
jec
новенький
Сообщения: 14
Зарегистрирован: 19.01.2011 11:57:57

Сообщение jec »

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

Сообщение xcod »

использую zeos после подключения к базе делаю ZConnection.ExecuteDirect('SET NAMES UTF8')
и кодировка приводится в порядок
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

Вообще описанная проблема довольна странная. обычно хватает '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 раза.
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Кроме того, бывают случаи, что в таблицах с декларированной одной кодировкой, данные хранятся в другой.
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

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

Сообщение GAMER »

Я другое имел в виду. например говорим, что работаем в кодировке кои8, но при этом пишем в таблицу в кодировке вин1251. Другой клиент открывает таблицу в утф8 и получает бред.
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

Конечно, ведь koi и cp1251 однобайтовые, а серверу все равно, что писать, лишь бы по одному символу.
Ответить