用idhttp返回xml为乱码

ych121 2008-04-10 01:17:02
var
Response: TMemoryStream;
begin
Source := TMemoryStream.Create;
try
Source.LoadFromFile(edPostFile.Text);
HTTP.Post(cbURL.Text, Source, Response);
Response.SaveToFile('d:\tmp.txt');
finally
Source.Free;
end;
end;
通过如上代码获取java服务返回地xml,保存到记事本中不正常,里面有空格的地方都是黑方块,中文是乱码,拷出来是以是如下
? < ? x m l v e r s i o n = " 1 . 0 " e n c o d i n g = " U T F - 1 6 " ? >
< r e s p o n s e >
< e r r o r >
< i d > 7 0 0 3 1 < / i d >
< t y p e >
1
< / t y p e >
< m e s s a g e >
夈懯 X M LQ鷷
< / m e s s a g e >
< / e r r o r >
< d a t a >
< / d a t a >
< / r e s p o n s e >
...全文
111 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
是utf-16不是utf-8

MultiByteToWideChar
WideCharToMultiByte
这两个函数转把,有支持utf-16的
回复
ych121 2008-04-10
不知怎么转,用MemoryStream,怎么转换后存入'd:\text'
用StringStream我也试过,Respone.datastring返回的都是#0隔开了的数据,我用
Utf8ToAnsil转换后内容就为空了
回复
hongqi162 2008-04-10
需要解码
回复
? x m l v e r s i o n = " 1 . 0 " e n c o d i n g = " U T F - 1 6 " ?
指出了这个xml的编码格式了,你将utf-16转化成ascii或者unicode就可以显示了
回复
gjw310 2008-04-10
没用过,学习..
回复
相关推荐
发帖
网络通信/分布式开发
创建于2007-08-02

1572

社区成员

Delphi 网络通信/分布式开发
申请成为版主
帖子事件
创建了帖子
2008-04-10 01:17
社区公告
暂无公告