将大型base64图像(~45k)转换为bitstring时,会引发异常:
exception error: no function clause matching
base64:decode("j9/",
[255,128,0,65,41,25,37,24,0,4,4,0,0,4,0,4,0,
3,255,108,1,12,0,32,24,24,28|...]) (base64.erl, line 254)
in function base64:decode/1 (base64.erl, line 118)
我真的想了解为什么它的行为(可能是bitstring max size?)
感谢您的时间
答案 0 :(得分:0)
您的base64数据似乎被截断了。 Base64通过获取4个字符的组并将它们转换为3个字节的组来工作。如果bitstring不是3个字节的倍数,则base64文本应填充一个或两个=
符号,这样它仍然由4个字符组组成,但你的base64文本以一组只有一组结尾3个字符。
答案 1 :(得分:0)
您是否可以通过尝试在Erlang外部对其进行解码来验证图像是否使用base64进行了正确编码?
请参阅此文章,了解如何从命令行执行此操作:
https://askubuntu.com/questions/178521/how-can-i-decode-a-base64-string-from-the-command-line