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 >
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 >
指出了这个xml的编码格式了,你将utf-16转化成ascii或者unicode就可以显示了
用StringStream我也试过,Respone.datastring返回的都是#0隔开了的数据,我用
Utf8ToAnsil转换后内容就为空了
WideCharToMultiByte
这两个函数转把,有支持utf-16的