А всё таки, FreePascal у Вас какой версии? Или это страшный секрет?
Проблема с кодировкой
Модератор: Модераторы
Zhbr
А всё таки, FreePascal у Вас какой версии? Или это страшный секрет?
А всё таки, FreePascal у Вас какой версии? Или это страшный секрет?
Нет, не серкрет последний офф релиз 2.6.4
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Не совсем понятно - с двух разных компов топикстартер коннектится к одному и тому же серверу, или к разным?
Снег Север писал(а):Не совсем понятно - с двух разных компов топикстартер коннектится к одному и тому же серверу, или к разным?
Да именно, один и тот же код компилируются на разных машинах, версия компилятора одинаковая, на одной есть проблема на другой нет. Сервак mysql отдельный, то есть к нему подключаюсь как с одного компании так и с другого.
Но этот запрос решил проблему
Код: Выделить всё
MySQLConnection.ExecuteDirect('SET CHARACTER SET utf8'); - Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Zhbr писал(а):Но этот запрос решил проблемуКод: Выделить всё
MySQLConnection.ExecuteDirect('SET CHARACTER SET utf8');
Вообще-то этот запрос стоит в исходном коде mysqlconn.inc в ConnectMySQL.
меня спасло в Windows и Linux:
P.S. Версии клиента 5.6 и 5.5
Код: Выделить всё
{ конектимся к серверу }
fMySQLConnection.HostName := host;
fMySQLConnection.UserName := login;
fMySQLConnection.Password := passwd;
fMySQLConnection.DatabaseName := nameDB;
fMySQLConnection.CharSet:= 'utf8'; // Вот оно - заветное (указание для клиента)
...
{ сообщим серверу }
fSQLQuery.sql.Text := 'SET NAMES utf8';
if not fMySQLConnection.Connected then fMySQLConnection.Open;
if fMySQLConnection.Connected then fSQLQuery.ExecSQL
else ...
P.S. Версии клиента 5.6 и 5.5
VirtUX писал(а):fMySQLConnection.CharSet:= 'utf8';
По отдельности данный параметр не влияет на кодировку
Как выяснилось ещё необходимо сообщить
VirtUX писал(а):SQLQuery.sql.Text := 'SET NAMES utf8';
Проблему ещё тогда так решил.
Код: Выделить всё
SQLQuery.sql.Text := 'SET NAMES utf8';...это решает проблему на стороне сервера. А вот для Windows (чтобы "нелатиница" отображалась правильно) нужно:
Код: Выделить всё
fMySQLConnection.CharSet:= 'utf8';