我用INDY收邮件 主题都是这样:=?utf-8?B?5L6/5a6c5aW95Lic5LicLOWNg+S4h+S6uuaKouWIsOaJi+i9rw==?==?GB2312?B?Rnc6udjT2rn6xNrT8sP7vbW827W9MzDUqrXEzajWqg==?==?big5?B?S3Vyb621vNa5caRss/g=?= <[email protected]>请问 怎么把上面的转变为中文。。

解决方案 »

  1.   

    //邮件编码采用base64
    //delphi提供EncdDecd标准单元转换base64
    //参考如下代码,如何分隔比较简单就不另写uses EncdDecd;function BIG5ToUnicode(mBIG5: string): WideString;
    var
      vLength: Integer;
      vCodePage: Integer;
    begin
      vCodePage := 950; //BIG5
      vLength := MultiByteToWideChar(vCodePage, 0, PChar(mBIG5), -1, nil, 0);
      if vLength <= 0 then Exit;
      SetLength(Result, vLength);
      MultiByteToWideChar(vCodePage, 0, PChar(mBIG5), -1, @Result[1], vLength);
    end; { BIG5ToUnicode }procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage(Utf8ToAnsi(DecodeString('5L6/5a6c5aW95Lic5LicLOWNg+S4h+S6uuaKouWIsOaJi+i9rw==')));
      ShowMessage(DecodeString('Rnc6udjT2rn6xNrT8sP7vbW827W9MzDUqrXEzajWqg=='));
      ShowMessage(BIG5ToUnicode(DecodeString('S3Vyb621vNa5caRss/g=')));
    end;