Base64 to Binary (Delphi)

前端 未结 5 901
灰色年华
灰色年华 2021-01-03 05:47

I used Binary to Base64 function that you answered : Binary to Base64 (Delphi)

I successfully encode a file to base64 string and write it to MsSQL2008 database, but

5条回答
  •  無奈伤痛
    2021-01-03 06:22

    I have a very old Delphi2006(v10.0.2558.35231 Update 2) and had to decode base64 UTF8 encoded input strings. I finally figured it out and heres an example for anyone interested.

      Uses
        IdCoderMIME; // Indy9
      var
        decoder: TIdDecoderMIME;
        str: WideString;
      - - - 
    
      decoder := TIdDecoderMIME.Create(nil);
      str := base64DecodeUTF8(decoder, b64sourcestr);
      decoder.Free;
      - - - 
    
      function base64DecodeUTF8(decoder:TIdDecoderMIME; str:String): WideString;
      var
        stream:TMemoryStream;
        utf8: UTF8String;
        //idx:Integer;
      begin
        stream := TMemoryStream.Create;
        try
          decoder.DecodeToStream(str, stream);
          setString(utf8, PChar(stream.Memory), stream.Size);
          Result := UTF8Decode(utf8);
          //for idx := 0 to stream.Size-1 do begin
          //  Writeln(PChar(stream.Memory)[idx] + ' ' + IntToStr(ORD(PChar(stream.Memory)      [idx])) );
          //end;
        finally
          stream.Free;
        end;
      end;
    

提交回复
热议问题