Delphi как декодировать файл в формате Base64?

Добрый день!
как декодировать файл в формате Base64?
знаю есть NetEncoding, пробую, но не получается

Так а что выдает, что в коде?

Реализую так


получаю вот это:
Base64 → Декодирование
image
По итогу файл : Json_Decode1.jpg не открывается, пишет, что поврежден

Я бы сразу писал байты в файл без строки и мемо.
С TFileStream как-нибудь так: delphi - How to convert TBytes to Binary File? (using MemoryStream) - Stack Overflow

Тестировала так тоже, но не получается

Прочитала, что необходимо

  1. Декодировать base64 в двоичный код.
  2. Обработать двоичный файл как кодированный текст UTF-8.
  3. Декодировать UTF-8 байт в текст.

А при чем здесь UTF8 ?

Это именно про этот случай или про что? Base64 откуда получен?
Если изначально закодированы просто байты файла, то вряд ли надо что-то еще декодировать.

Это Delphi и HTTP. Отправляю гет запрос на получение файла

хм, TNetEncoding похоже и правда что-то странное с кодировками делает.

У меня тоже не сработало на этом base64, по крайней мере в Лазарусе.

так работает:

uses
  ........, SysUtils, base64;

procedure TForm1.Button1Click(Sender: TObject);
var
  base64, decoded: string;
  bs: TBytesStream;
begin
  base64 := Memo1.Text;

  decoded := DecodeStringBase64(base64);

  bs := TBytesStream.Create(BytesOf(decoded));
  try
    bs.SaveToFile('img.jpg');
  finally
    bs.Free;
  end;

  OpenDocument('img.jpg');
end;

Но в Дельфи вроде нет DecodeStringBase64.
Так что я бы поискал какой-нибудь другой аналог.

Все решила. Использовала System.NetEncoding
image