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:問題は計算フィールドでのみ発生します。ライブデータ「ロシア語(русский)」が正しく表示されます。

4

1 に答える 1

3

あなたは私がいつもするのと同じ間違いをしたと思います。このようなフィールドを作成する場合:

ここに画像の説明を入力してください

ですANSIWideStringUnicodeにするために選択する必要があります。

ここに画像の説明を入力してください

于 2012-09-05T10:21:37.163 に答える