Base64 解码崩溃 android

Base64 decode crash android

java.lang.IllegalArgumentException: bad base-64

val base64 = Base64.decode(string3, Base64.URL_SAFE)
val str = String(base64, charset("UTF-8"))

string3 = "eyJzdWNjZXNzIjp0cnVlLCJyZWFzb25zIjp7IjUiOiJMYXRlIGFycml2YWwgYXQgU2Nob29sIiwiNiI6IkVhcmx5IGRlcGFydHVyZSIsIjkiOiJMYXRlIGFycml2YWwgdG8gQ2xhc3MiLCI4MSI6IkNPVklELTE5IE9uLVByZW1pc2UifSwicmFuZCI6MTg3OTM0NDIxOSwidGltZSI6MTU5MDAzMzM5OH0%3D"

它只是偶尔发生。

大部分时间都有效。

string3可以通过在线解码工具成功解码

我尝试以下修复

使用-> Base64.URL_SAFE Base64.DEFAULT Base64.NO_PADDING Base64.NO_WRAP

val remainder = string3.length % 4
   if (remainder > 0) {
     val pad = "=";
     val char = pad.single()
     string3.padStart(string3.length + 4 - remainder, char)
   }

有时会崩溃..有时会正常工作

如错误所述java.lang.IllegalArgumentException: bad base-64您的字符串不是正确编码的字符串,您可以在此处查看

错误显示很清楚(红色标记),删除那些字符,您可以再次验证和检查。