用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 >
...全文
151 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
是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
  • 打赏
  • 举报
回复
没用过,学习..

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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