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