从 Base64 字符串转换为字节数组时出错

问题描述 投票:0回答:1

我接到这个电话

byte[] buffer = Convert.FromBase64String(content);

其中

content
是代表JPG文件的base64字符串(数据来自人脸识别设备)。

当我一步步调试它时,

System.FormatException
抛出异常并显示以下消息:

输入不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符或填充字符中包含非法字符。

但是,如果我只是将

content
字符串复制并粘贴到在线转换器中,如下所示:https://codebeautify.org/base64-to-image-converter 图像就会完美显示。

似乎上述网站正在做一些我没有做的事情。出于安全原因,我无法在此处发布真正的 base64 字符串,但是,也许我可以在转换为字节数组之前以某种方式清除输入字符串。

你有什么建议吗?

c# base64 data-conversion
1个回答
0
投票

直接从 Convert.FromBase64String() 文档获取描述,以下是排除引发格式异常的原因的步骤:

  1. 检查内容字符串的长度是否不为零或4的倍数(计算时忽略空格)。

  2. 检查该字符串中是否有非法字符。所有字符都必须位于此处描述的 Base64 表中:wikipedia 链接。 从 0 开始按升序排列的 64 进制数字是大写字符“A”到“Z”、小写字符“a”到“z”、数字“0”到“9”以及符号“+”和“/” “您可以在表中看到。

  3. 检查该字符串中是否存在两个以上的填充字符,或者填充字符中是否存在非空白字符。填充字符为“=”。

© www.soinside.com 2019 - 2024. All rights reserved.