Base64编码为什么会以=号结尾
- 在对报文进行base64编码后,会发现结尾会有等号,是否所有的都要以=结尾呢?
- 答案是否定的,=号存在的意义是为了补位,base64编码后的长度需要是4个字符的倍数,如果不是4的倍数需要在结尾加上=。
Base编码数据在网络传输中+号会被转义成空格
- 解决办法:
// 方式1:处理办法:在传输时将base64编码后的数据中+号替换成`%2B`
reqData =reqData.replaceAll("\\+",%2B);
//方式2:对Base64编码后的在进行一次URLEncoder.encode();
URLEncoder.encode(reqData, "UTF-8");