Delphi - DBGrid不显示UTF8计算字段

时间:2012-09-05 09:41:48

标签: delphi delphi-xe firebird2.5 tdbgrid fibplus

我有一个TDBGrid链接到一个后面有TFibDataSet的TDataSource。在数据集的OnCalcFields上,我正在尝试添加字符串'Russisch(русский)'。

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

问题是在网格中结果显示为:Russisch(????????)

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

具有相同的结果

FibDataBase组件将ConnectParams.Charset设置为UTF-8。我也设置了DBParams值lc_ctype=UTF8

我在这里做错了什么?

LE:Delphi XE, Firebird and UTF8 - 这并不能解决我的问题。

LE1:只有计算字段才会出现问题。实时数据'Russisch(русский)'显示正确。

1 个答案:

答案 0 :(得分:2)

我猜你总是犯了同样的错误。当您创建这样的字段时:

enter image description here

它的ANSI。您必须选择WideString才能使其成为unicode:

enter image description here