1

我有一个 TDBGrid 链接到一个 TDataSource,后面有一个 TFibDataSet。在数据集的 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 和 UTF8——这并不能解决我的问题。

LE1:问题仅出现在计算字段上。实时数据“Russisch (русский)”正确显示。

4

1 回答 1

3

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

在此处输入图像描述

它是ANSI。您必须选择WideString它是 unicode:

在此处输入图像描述

于 2012-09-05T10:21:37.163 回答