奇怪的erlang行为,处理大的位字符串

奇怪的erlang行为,处理大的位字符串,erlang,Erlang,将大型base64图像(~45k)转换为位字符串时,会引发异常: 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图像(~45k)转换为位字符串时,会引发异常:

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)
我真的很想了解它为什么会这样(可能是位字符串最大大小?)


感谢您抽出时间

您的base64数据似乎被截断了。Base64的工作原理是将4个字符的组转换为3个字节的组。如果位字符串不是3字节的倍数,则base64文本应填充一个或两个
=
符号,以便它仍然由4个字符组成,但base64文本以仅3个字符组成的组结尾。

是否可以通过尝试在Erlang外部解码来验证图像是否正确使用base64编码

请参阅本文,了解如何从命令行执行此操作:


在执行Image=base64:decode(EncodedImage)之前,您确定图像没有任何值吗?如果您想问另一个问题,请不要编辑(并擦除)上一个问题,而只创建新问题。在这种情况下,异常的原因是:模块base64中没有带2个参数的函数解码