比较简单的一个方法:
var
i,l:integer;
s1,s2:string;
begin
// 假设ms是你要读的内存流对象
ms.Position:=0;
SetLength(s1,ms.Size);
ms.Read(s1[1],ms.Size);
i:=1;
l:=Length(s1);
s2:='';
While i<=l do
case ByteType(s1,i) of
mbSingleByte:
begin
if i>1 then
s2:=s2+','''+s1+''''
else
s2:=s2+''''+s1+'''';
inc(i)
end;
mbLeadByte:
begin
if i>1 then
s2:=s2+','''+s1+s1[i+1]+''''
else
s2:=s2+''''+s1+s1[i+1]+'''';
inc(i,2)
end
end;
...