我有一个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(русский)'显示正确。
答案 0 :(得分:2)
我猜你总是犯了同样的错误。当您创建这样的字段时:
它的ANSI
。您必须选择WideString
才能使其成为unicode: