Поскольку вы говорите, что в БД есть как греческие, так и латинские символы, я полагаю, что вы уже используете nvarchar
в БД.
В Delphi вы должны использовать TWideStringField для nvarchar
полей. TStringField предназначен для varchar
(ansistring).
Поле1 содержит «γειά σου»
StringField := ADODataSet1.FieldByName('Field1') as TStringField;
ShowMessage(StringField.Value);
ShowMessage показывает "? E ?? s ??"
Это прекрасно работает
WideStringField := ADODataSet1.FieldByName('Field1') as TWideStringField;
ShowMessage(WideStringField.Value);
Редактировать 1
Если у вас есть поля varchar
в db, вы должны использовать TStringField
, и вам нужно убедиться, что «Язык для программ, не поддерживающих Юникод» - Greek(Greece)
.
«Панель управления - Регион и язык - Административный - Изменить язык системы ...»