jwt payload 中文乱码问题处理
java中没使用正确的Base64解码payload内容时,解码后的payload会出现中文乱码,如下面代码片段所示:
Base64.decoder.decode(decodedJWT.getPayload());
查看签名源码可知签名用的Base64.getUrlEncoder(),所以解码需要用Base64.getUrlDecoder(),如下图所示:
所以java中需要使用Base64.getUrlDecoder()结合utf-8解码payload就不会出现乱码,如下面代码片段所示:
String payLoad = new String(Base64.getUrlDecoder().decode(decodedJWT.getPayload()), Standardcharsets.UTF_8));