假设我有一张图像image1.jpg
,我可以使用base64
工具对其进行编码:
myImgStr=$(base64 image1.jpg)
我尝试使用以下命令对其进行解码:
base64 -i -d $myImgStr > image2.jpg
或者
echo -n $myImgStr | base64 -d -i > image2.jpg
但在这两种情况下,我都会收到以下错误:
base64: extra operand ‘/9j/4AAQSkZJRgABAQAAAQABAAD/7QCEUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAGgcAmcAFHNH’
Try 'base64 --help' for more information.
任何帮助表示赞赏。
该实用程序
base64
从名称作为参数提供的文件或标准输入中读取其输入。它从不从命令行参数读取其输入。在您的情况下,要解码存储在变量中的字符串,您应该在base64
.如果你使用 Bash,你可以使用 here-string:
如果你的 shell 不接受这里的字符串,你总是可以使用:
(注意 . 周围的双引号
"$myImgStr"
。除非您有充分的理由不这样做,否则您应该始终双引号变量扩展。)