我的代码中有一个声明的变量,如下所示:
Var
VarName:Array[0..693] of Byte = ( and my array here );
我的用途中有EncdDecd ..
我希望使用EncdDecd.pas中的EncodeBase64函数将此Byte数组编码为base64字符串
但是我不确定如何将它返回到漂亮而漂亮的b64字符串中,该字符串可以使用DecodeBase64直接转换回字节数组...
我尝试过几种不同的方法..
Var Res:PWideChar;
begin
StringToWideChar(EncodeBase64(@VarName, 693), Res, 693);
ClipBoard.SetTextBuf(Res);
end;
使用该代码访问违规行为......
也尝试过:
begin
ClipBoard.SetTextBuf(PWideChar(EncodeBase64(@VarName, 693)));
end;
返回一个充满扭曲的中文符号的字符串......
任何有关返回此字符串的帮助都将非常感谢..
谢谢!
答案 0 :(得分:7)
函数声明为
function DecodeBase64(const Input: AnsiString): TBytes;
function EncodeBase64(const Input: Pointer; Size: Integer): AnsiString;
所以你需要在Unicode Delphi中将AnsiString强制转换为字符串,
var S: string;
begin
S:= string(EncodeBase64(@VarName, 693));
..
解码S你应该把它强制转换为AnsiString:
var B: TBytes;
begin
B:= DecodeBase64(AnsiString(S));
..