所以我尝试使用以下代码在 flutter 中使用 base64 字符串显示图像:
class GeneratedImages extends StatelessWidget {
const GeneratedImages({
Key? key,
required this.imageBytes,
}) : super(key: key);
final String imageBytes;
@override
Widget build(BuildContext context) {
return Image.memory(
const Base64Decoder().convert(imageBytes),
errorBuilder: (_, object, stackTrace) {
return const Center(
child: Icon(Icons.image_not_supported),
);
},
);
}
}
当我运行代码时,显示以下错误
FormatException: Invalid character (at character 77)
我拥有的 Base 64 字符串是: /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEP ERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4e Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wARCAEAAQA FK5uYR9j05ISHI/eMTjPTGCPbtWJqHi3xJcyBhew27548oKMDPAG7k9cV1UsJWTu3YyqYml6n//Z
任何帮助将不胜感激
基于 @Jamesdlin 的评论中建议的答案。
删除字符串中存在的所有空格即可解决问题。
能够通过使用这个来删除空格:
base64.decode(imageBytes.replaceAll(RegExp(r'\s+'), '')),
如果错误是:FormatException(FormatException:无效字符(位于字符 17)),该怎么办 821PlayerUnknown@# 解码加密字符串时的 @ 字符
导致错误的方法是:final Uint8List cryptoBytes = base64.(这里发生错误)decode(item.password.replaceAll(RegExp(r'\s+'), '')).sublist( 0, base64.decode(item.password).length, );