解码base64字符串时得到奇怪的符号

时间:2019-06-11 09:14:43

标签: java base64

我在base64“ AhSld52dYtRQJDddAT4XVrymbrei6G03FFNvns6d1”中有一些编码的字符串

正在尝试对其进行解码,并使用奇怪的输出符号“ P。,”����Ej��s。“

String result = "AhSld52dYtRQJDddAT4XVrymbrei6G03FFNvns6d1";
byte[] decoded= Base64.decodeBase64(result.getBytes());
Arrays.toString(decoded);  --> [2, 20, -91, 119, -99, -99, 98, -44, 80, 36, 55, 93]
new String(decoded);  --> P�,"����Ej��s��

1 个答案:

答案 0 :(得分:1)

Base64用于将二进制数据编码为ASCII,反之亦然。二进制数据不必是有效的字符串,因此尝试从一些可能随机的字节创建String很有可能会失败并因此给您带来“垃圾”。

换句话说,除非您从某个辅助渠道知道byte[]包含字符串数据,否则不要尝试将String解释为--spring.config.additional-location=production.properties

我建议您看看what is base64