Dark_Knight
جمعه 13 شهریور 1388, 19:28 عصر
سلام
در قسمتی از برنامه نیاز دارم محتویات یک MemoryStream که یک فایل با انکودینگ UTF8 هست رو به WideString تبدیل کنم تا پردازشهای بعدی رو انجام بدم. من از کد زیر استفاده می کنم که بعضی مواقع این تبدیل دو درست انجام میده و در بعضی مواقع دیگر یک رشته خالی برمیگردونه:
function StreamToWideString(AStream: TStream): WideString;
Var
s: UTF8String;
l: integer;
begin
AStream.Position:= 0;
setlength(s, AStream.size);
l:= AStream.Size *2;
SetLength(Result, l);
AStream.Read(s[1], AStream.Size);
Result := UTF8Decode(s);
end;
به نظر میرسه تابع UTF8Decode در مواقعی درست عمل نمیکنه. اگه ممکنه راهنمایی کنید.
در قسمتی از برنامه نیاز دارم محتویات یک MemoryStream که یک فایل با انکودینگ UTF8 هست رو به WideString تبدیل کنم تا پردازشهای بعدی رو انجام بدم. من از کد زیر استفاده می کنم که بعضی مواقع این تبدیل دو درست انجام میده و در بعضی مواقع دیگر یک رشته خالی برمیگردونه:
function StreamToWideString(AStream: TStream): WideString;
Var
s: UTF8String;
l: integer;
begin
AStream.Position:= 0;
setlength(s, AStream.size);
l:= AStream.Size *2;
SetLength(Result, l);
AStream.Read(s[1], AStream.Size);
Result := UTF8Decode(s);
end;
به نظر میرسه تابع UTF8Decode در مواقعی درست عمل نمیکنه. اگه ممکنه راهنمایی کنید.