var
  ss : TStringStream;
begin
  ss := TStringStream.Create('', TEncoding.GetEncoding(936)); ---------------
以上为D2007版本后的代码
请教,在D7下  ss := TStringStream.Create('', TEncoding.GetEncoding(936)); 这句怎么写呢,貌似D7下没有TEncoding这个单元

解决方案 »

  1.   

    2009才有TEncoding,在D7下面要进行不同编码字符之间转换的,其实也有 很多 选择,通常你肯定只要在两三种之间转换,可以选择WideStringToUCS4String,UCS4StringToWideString,UnicodeToUtf8,Utf8ToUnicode,UnicodeToUtf8,Utf8ToUnicode,UTF8Encode,UTF8Decode,AnsiToUtf8,Utf8ToAnsi这些来做
    别人的一个例子,不知道有没有用function TMainForm.ToHexString(s: string; encode: Integer): string;varlen:Integer;w:WideString;u:UTF8String;beginResult := '';if encode=1 then //Unicodebeginw:=s;Len := Length(s); //别写成 Len := Length(w);SetLength(Result, Len shl 1);BinToHex(PChar(w), PChar(Result), Len);end elseif encode=2 then //UTF8beginu:=AnsiToUTF8(s);Len := Length(u);SetLength(Result, Len shl 1);BinToHex(PChar(u), PChar(Result), Len);end;end;
      

  2.   

    TEncoding.GetEncoding(936))好像是取国家的语言页面编码
    能进入它的源代码看看它是怎么实现的?