我在数据集中遇到捕获中文字符的问题。
在Delphi 2010中,我尝试了两种组件:
因此,那些未链接到数据源的组件工作正常,但链接到数据源的 do 组件存在问题。除TDBMemo外,汉字已被转换为问号。见下图。
数据集是一个客户端数据集,包含两个字段:
我该怎么做才能让它发挥作用?
Reference Image http://img97.imageshack.us/img97/9445/d2010unicodetestsimplif.gif
type
TForm1 = class(TForm)
ClientDataSet1: TClientDataSet;
ClientDataSet1Name: TStringField;
ClientDataSet1Description: TMemoField;
DataSource1: TDataSource;
ClientDataSet2: TClientDataSet;
ClientDataSet2Name: TStringField;
ClientDataSet2Description: TMemoField;
DataSource2: TDataSource;
答案 0 :(得分:2)
在Delphi 2010中,TStringField
和TMemoField's
value属性的类型为AnsiString
。这就是为什么中文字符没有显示在数据感知控件中的原因。
相反,您应该将字段类型声明为ftWideString
或ftWideMemo
,以分别创建TWideStringField
和TWideMemoField
。