关于XE里的ClientDataSet.XMLData中文乱码问题

tevistang 2011-12-16 09:49:57
Delphi XE + Access

Access里有一表,字段名英文,字段值有中文,字段类型文本,比如
DevID DevName
001 设备主机

DelphiXE里如下设计
ADOConnection连接Access
ADOQuery查询表,select * from table
DataSetProvider的DataSet属性指向ADOQuery
当ADOQuery查询到数据后,把Data赋给ClientDataSet
ClientDataSet.Data := DataSetProvider.Data

但这时查看ClientDataSet.XMLData的值,发现查询出来的中文是乱码。。。

中文在ADOQuery查询出来的时候是正常的,赋值Data到ClientDataSet后,也是正常的(用ClientDataSet.FieldByName().AsString看的),生成XMLData时就变了乱码。。。晕,英文和数字正常。

我觉得应该是生成XMLData时的编码不对的原因,请问大虾们该怎么解决这个问题啊?
谢谢!
...全文
199 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
都先生 2011-12-16
  • 打赏
  • 举报
回复
生成XML时候的格式、类型都有可能照成这种情况。
tevistang 2011-12-16
  • 打赏
  • 举报
回复
补充:
默认是UTF8编码,如果我这么写
var
s: string;
begin
s := UTF8ToWideString(ClientDataSet.XMLData);
end;
s值里的中文就正常了,但如果再赋回ClientDataSet
ClientDataSet.XMLData = s;
那么中文又成了乱码

能有办法制定编码格式吗
tevistang 2011-12-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jubobo 的回复:]
生成XML时候的格式、类型都有可能照成这种情况。
[/Quote]

那么有没有具体的解决办法呢?

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧