Добрый день!
как декодировать файл в формате Base64?
знаю есть NetEncoding, пробую, но не получается
Так а что выдает, что в коде?
Реализую так
получаю вот это:
Base64 → Декодирование
По итогу файл : Json_Decode1.jpg не открывается, пишет, что поврежден
Я бы сразу писал байты в файл без строки и мемо.
С TFileStream
как-нибудь так: delphi - How to convert TBytes to Binary File? (using MemoryStream) - Stack Overflow
Тестировала так тоже, но не получается
Прочитала, что необходимо
- Декодировать base64 в двоичный код.
- Обработать двоичный файл как кодированный текст UTF-8.
- Декодировать 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