Кодировка MySQL
Модератор: Модераторы
Кодировка MySQL
Проблема такая. Вроде лазарус должен отображать utf8 кодировку без преобразования, но отображаются тольо вопросики.
Запрос из базы Mysql делаю через компоненту ODBCconnection. В администраторе Майскюл написано, что данные в таблицах базы в формате утф8, но никак не могу заставить лазарус отображать эти данные корректно.
Запрос из базы Mysql делаю через компоненту ODBCconnection. В администраторе Майскюл написано, что данные в таблицах базы в формате утф8, но никак не могу заставить лазарус отображать эти данные корректно.
Вот это стОит почитать...
http://www.lissyara.su/articles/freebsd ... _charsets/
http://www.lissyara.su/articles/freebsd ... _charsets/
Садисты
SET NAMES UTF8; при запуске
но вообщето в драйвере ODBC в настройках можно выставить.
ODBCConnection1.CharSet:='UTF8'
SET NAMES UTF8; при запуске
но вообщето в драйвере ODBC в настройках можно выставить.
ODBCConnection1.CharSet:='UTF8'
К несчастью не помогает. Ни SET NAMES UTF8; Ни выставоении Чарсета в одбсконнекшн. Как заколдованный... никак не хочет отобрать что либо, кроме этих вопросиков((((((
south писал(а):Запрос из базы Mysql делаю через компоненту ODBCconnection
MySQL40Connection, MySQL41Connection, MySQL50Connection - не?
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
Да, форум про lazarus, но пока с кодировкой майскуля не разобрался, так и было, что либо из программы "вопросики", либо phpMyAdmin этим грешит. Конечно, если к настройкам сервера нет доступа...
Мне вот нужна кроссплатформенность и серверы локальные
Абсолютно согласен с тем, что матчасть мне учить и учить. А показал ссылку, которая МНЕ помогла немного понять природу моих проблем, ну настроить сервер "под себя".
ЗЫ. Прошу прощения за отход от темы топика
Мне вот нужна кроссплатформенность и серверы локальные
Абсолютно согласен с тем, что матчасть мне учить и учить. А показал ссылку, которая МНЕ помогла немного понять природу моих проблем, ну настроить сервер "под себя".
ЗЫ. Прошу прощения за отход от темы топика
использую zeos после подключения к базе делаю ZConnection.ExecuteDirect('SET NAMES UTF8')
и кодировка приводится в порядок
и кодировка приводится в порядок
Вообще описанная проблема довольна странная. обычно хватает '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/ , подобрать правильные параметры
Кроме того существуют переменные сервера
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 раза.
Лучше работать в UTF8 где только возможно. И подобных проблем не будет. А если кодировка данных другая , переворачивать в тот же utf8.
Кстати нужно внимательно проверять параметры создания базы, так как в последствии легко запутаться кто есть ху. База по умолчанию cp1251, клиент подключается в koi8, а столбцы таблицы вообще в utf8
Кстати нужно внимательно проверять параметры создания базы, так как в последствии легко запутаться кто есть ху. База по умолчанию cp1251, клиент подключается в koi8, а столбцы таблицы вообще в utf8
Конечно, ведь koi и cp1251 однобайтовые, а серверу все равно, что писать, лишь бы по одному символу.
