RBA
RBA

Reputation: 12584

Delphi - DBGrid does not display UTF8 calculated field

I have a TDBGrid linked to a TDataSource with a TFibDataSet behind. On the OnCalcFields of the dataset I'm trying to add the string 'Russisch (русский)'.

procedure TForm1.pFIBDataSet1CalcFields(DataSet: TDataSet);
begin
  DataSource1.DataSet.FieldByName('Language').AsString := ('Russisch (русский)');

The problem is that in the grid the result is displayed as :Russisch(????????)

 DataSource1.DataSet.FieldByName('Language').AsWideString :=('Russisch (русский)'); 

has the same result

FibDataBase component has ConnectParams.Charset set to UTF-8. Also I set in the DBParams value lc_ctype=UTF8.

What I'm doing wrong here?

LE: Delphi XE, Firebird and UTF8 - this does not solve my problem.

LE1: Problem occurs only with calculated fields. Live data 'Russisch (русский)' is displayed correctly.

Upvotes: 1

Views: 4279

Answers (1)

iMan Biglari
iMan Biglari

Reputation: 4776

I guess you made the same mistake I always make. When you create a field like this:

enter image description here

it's ANSI. You have to select WideString for it to be unicode:

enter image description here

Upvotes: 3

Related Questions