Delphi 2010Delphi: Перенос изображения
Я Передача изображения с помощью пользовательского элемента управления TCP сокета использует UTF-8
Client Side
var
TSS: TStringStream;
STR :String;
JPG:TJPEGImage;
BMP:TBitmap;
begin
Try
BMP.LoadFromFile('C:\1.bmp');
JPG.Assign(BMP);
JPG.CompressionQuality:=80;
JPG.Compress;
TSS:=TStringStream.Create;
JPG.SaveToStream(TSS);
STR:=TSS.DataString;
MyTCPSocket.SendString(STR);
finally
BMP.free;
JPG.free;
TSS.free;
end;
end;
стороне сервера
Var
TSS: TStringStream;
TSS:=TStringStream.Create;
TSS.WriteString(STR);
TSS.SaveToFile('C:\2.jpg');
Это код работает на том же ПК.
Проблема при отправке изображения на другой компьютер, который использует различную кодировку , он получает изображение, но я вижу много неправильных символов в данных «?????»
Я думаю, что когда TStringStream записывает байты в файл, он не может преобразовать символы Unicode в байты, поэтому он выглядит как «?»
Любая идея ценится
Thx Remy моя проблема в том, что используется сокет только поддерживает отправку utf8 строк я использовал функцию EncodeStream от «EncdDecd» для кодирования потока в base64 ТНХ снова ур помощь:) –