【发布时间】:2012-01-19 00:50:00
【问题描述】:
如何将 TIdBytes 编码为 Base64 字符串(不是 AnsiString)?
ASocket.IOHandler.CheckForDataOnSource(5);
if not ASocket.Socket.InputBufferIsEmpty then
begin
ASocket.Socket.InputBuffer.ExtractToBytes(data);
// here I need to encode data to base64 string, how ? I don't need AnsiString!!
// var s:string;
s := EncodeBase64(data, Length(data)); // but it will be AnsiString :(
或者如何通过 AContext.Connection.Socket.Write() 发送 AnsiString ?
编译器说从'AnsiString'到'string'的隐式字符串转换
“data”变量包含来自网站的 UTF-8 数据。
【问题讨论】:
-
也许还有其他方法可以将二进制数据传递给字符串?这将比 base64 编码具有更高的性能..
-
编译器告诉我可能有数据丢失
-
在变量“数据”中我有来自网站的 UTF-8 数据。
-
好的,如果我尝试发送 ansistring AContext.Connection.Socket.Write(s);编译器说:W1057 Implicit string cast from 'AnsiString' to 'string'
标签: string delphi base64 ansistring