我需要使用idHTTP(String := idHTTP.Get
)以Unicode格式下载TreeView文件。下载后,我需要用字符串做一些事情然后把它放在TTreeView中。我正在使用Delphi 2010。
s:=form2.idhttp1.Get(Adres+'list.ttt');
....
StrStream:=TStringStream.Create(s,t encoding.Unicode);
form2.TreeView1.LoadFromStream(strstream);
StrStream.Free;
我无法在S
或TreeView1
中看到Unicode。如果我尝试下载不是list.ttt而是list.html,我只会在S
中看到Unicode。我需要在idHTTP中设置什么才能正常工作?
答案 0 :(得分:3)
请勿使用TStringStream
,请使用TMemoryStream
,这样您就不会对内容进行任何重新编码。例如:
var ResponseStream: TMemoryStream;
begin
ResponseStream := TMemoryStream.Create;
try
H.Get(URL, ResponseStream);
ResponseStream.Position := 0;
Tree.LoadFromStream(ResponseStream);
finally ResponseStream.Free;
end;
end;
答案 1 :(得分:1)
@Michael - 我认为你确实看到S中的数据,但它是ansiString而不是Unicode,对吗?你确定你的源'list.ttt'是Unicode吗?您是否尝试过明确地声明s作为unicodeString或使用unicodeString函数?只需要考虑一些事情 - 不是真正的答案。 HTH