base64字符串内容:eyJjb2RlIjoxMDAwMDAsImRhdGEiOnsiZGF0YSI6eyJydWxlIjp7ImRhZXhpbmtlcnVsZSI6IjAu MTAwMTAwMCIsImxhb2tlcnVsZSI6IjAuMDAiLCJyZWplY3RfcnVsZTFfYXQyMDE5MTEiOjAsInVw Z3JhZGVfcnVsZTFfYXQyMDE5MTEiOjAsInVwZ3JhZGVfcnVsZTJfYXQyMDE5MTEiOjAsInVwZ3Jh ZGVfcnVsZTNfYXQyMDE5MTEiOjAsInVwZ3JhZGVydWxlIjowfSwic2NvcmUiOnsibW9kZWxfdmVy IjoidmVyXzIwMTlfMTFfMjkiLCJxdWVyeV90aW1lIjoiLTEiLCJzY29yZTEiOi05OS4wLCJzY29y ZTIiOi05OS4wLCJzY29yZTMiOi05OS4wLCJzY29yZTQiOi05OS4wLCJzY29yZTUiOi05OS4wLCJz Y29yZTYiOi05OS4wLCJzY29yZTciOi05OS4wLCJzY29yZTgiOi05OS4wfX0sImhvc3RuYW1lIjoi YjYzMjEwOTlhNDMxIiwicXVlcnlUaW1lIjoiMjAyMC0wMi0xMCAxMjozNTo1NC45NzYzMTYiLCJy ZXNwX2NvZGUiOiIxIiwicmVzcF9kZXNjIjoiXHU2N2U1XHU4YmUyXHU2MjEwXHU1MjlmIiwic2l0 ZV92ZXIiOiJ6aG9uZ2JhbmdfMjAyMF8wMV8xMyJ9LCJtZXNzYWdlIjoic3VjY2VzcyJ9Cg==
发现base64内容都有空格,替换掉空格之后就好了
String res = "eyJjb2RlIjoxMDAwMDAsImRhdGEiOnsiZGF0YSI6eyJydWxlIjp7ImRhZXhpbmtlcnVsZSI6IjAu MTAwMTAwMCIsImxhb2tlcnVsZSI6IjAuMDAiLCJyZWplY3RfcnVsZTFfYXQyMDE5MTEiOjAsInVw Z3JhZGVfcnVsZTFfYXQyMDE5MTEiOjAsInVwZ3JhZGVfcnVsZTJfYXQyMDE5MTEiOjAsInVwZ3Jh ZGVfcnVsZTNfYXQyMDE5MTEiOjAsInVwZ3JhZGVydWxlIjowfSwic2NvcmUiOnsibW9kZWxfdmVy IjoidmVyXzIwMTlfMTFfMjkiLCJxdWVyeV90aW1lIjoiLTEiLCJzY29yZTEiOi05OS4wLCJzY29y ZTIiOi05OS4wLCJzY29yZTMiOi05OS4wLCJzY29yZTQiOi05OS4wLCJzY29yZTUiOi05OS4wLCJz Y29yZTYiOi05OS4wLCJzY29yZTciOi05OS4wLCJzY29yZTgiOi05OS4wfX0sImhvc3RuYW1lIjoi YjYzMjEwOTlhNDMxIiwicXVlcnlUaW1lIjoiMjAyMC0wMi0xMCAxMjozNTo1NC45NzYzMTYiLCJy ZXNwX2NvZGUiOiIxIiwicmVzcF9kZXNjIjoiXHU2N2U1XHU4YmUyXHU2MjEwXHU1MjlmIiwic2l0 ZV92ZXIiOiJ6aG9uZ2JhbmdfMjAyMF8wMV8xMyJ9LCJtZXNzYWdlIjoic3VjY2VzcyJ9Cg=="; System.out.println(new String(Base64.getDecoder().decode(res.replaceAll(" ", "")), "UTF-8"));
正确的做法是编码的时候就要把空格去除。