如何下载Unicode文件并将其加载到TTreeView中?

时间:2011-05-29 22:19:36

标签: delphi text unicode stringstream idhttp

我需要使用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;

我无法在STreeView1中看到Unicode。如果我尝试下载不是list.ttt而是list.html,我只会在S中看到Unicode。我需要在idHTTP中设置什么才能正常工作?

2 个答案:

答案 0 :(得分:3)

如何使其适用于TIdHttp

请勿使用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