以下代碼適用於Win32,無論如何,它在Android或iOS上運行時都會拋出異常。唯一的例外是:「在多字節的目標代碼頁中,爲Unicode字符沒有映射」delphi xe6目標多字節代碼頁中不存在用於Unicode字符的映射
function GetURLAsString(aURL: string): string;
var
lHTTP: TIdHTTP;
lStream: TStringstream;
begin
lHTTP := TIdHTTP.Create(nil);
lStream := TStringstream.Create(result);//create('',EEncoding.utf8),not work
try
lHTTP.Get(aURL, lStream);
lStream.Position := 0;
result := lStream.readstring(lStream.Size);//error here
finally
FreeAndNil(lHTTP);
FreeAndNil(lStream);
end;
end;
毫無疑問,在這裏,請澄清。移動平臺僅處理UTF-16 unicode字符串。 – 2014-09-26 13:49:03
@LURD Indy能夠在移動平臺上進行翻譯並轉換爲UTF-16(由OS特定的轉換API支持) – mjn 2014-09-26 15:41:47
注意:TIdHTTP.Create(nil)可以縮短爲TIdHTTP.Create – mjn 2014-09-26 15:42:53