Проблема с кодировкой

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

Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Zhbr
А всё таки, FreePascal у Вас какой версии? Или это страшный секрет? ;-)
Zhbr
новенький
Сообщения: 44
Зарегистрирован: 31.01.2014 02:34:21

Сообщение Zhbr »

Нет, не серкрет последний офф релиз 2.6.4
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3071
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

Не совсем понятно - с двух разных компов топикстартер коннектится к одному и тому же серверу, или к разным?
Zhbr
новенький
Сообщения: 44
Зарегистрирован: 31.01.2014 02:34:21

Сообщение Zhbr »

Снег Север писал(а):Не совсем понятно - с двух разных компов топикстартер коннектится к одному и тому же серверу, или к разным?

Да именно, один и тот же код компилируются на разных машинах, версия компилятора одинаковая, на одной есть проблема на другой нет. Сервак mysql отдельный, то есть к нему подключаюсь как с одного компании так и с другого.

Но этот запрос решил проблему

Код: Выделить всё

MySQLConnection.ExecuteDirect('SET CHARACTER SET utf8'); 
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3071
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

Zhbr писал(а):Но этот запрос решил проблему

Код: Выделить всё

MySQLConnection.ExecuteDirect('SET CHARACTER SET utf8'); 

Вообще-то этот запрос стоит в исходном коде mysqlconn.inc в ConnectMySQL.
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

меня спасло в Windows и Linux:

Код: Выделить всё

{ конектимся к серверу }
  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
Zhbr
новенький
Сообщения: 44
Зарегистрирован: 31.01.2014 02:34:21

Сообщение Zhbr »

VirtUX писал(а):fMySQLConnection.CharSet:= 'utf8';

По отдельности данный параметр не влияет на кодировку
Как выяснилось ещё необходимо сообщить
VirtUX писал(а):SQLQuery.sql.Text := 'SET NAMES utf8';

Проблему ещё тогда так решил.
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

Код: Выделить всё

SQLQuery.sql.Text := 'SET NAMES utf8';


...это решает проблему на стороне сервера. А вот для Windows (чтобы "нелатиница" отображалась правильно) нужно:

Код: Выделить всё

fMySQLConnection.CharSet:= 'utf8';
Ответить