Scala解码base64编码的URL提示Last unit does not have enough valid bits

问题描述
  1. 开始使用Base64.getMimeDecoder().decode(base_url).map(_.toChar).mkString去解码,部分数据也提示如题的错误
  2. 然后尝试使用Base64.getUrlDecoder().decode(base_url).map(_.toChar).mkString,会提示decode不属于getUrlDecoder
原因
  1. 原因应该是编码后的URL长度不符合要求(要求长度是4的倍数),导致的这个问题
解决
  1. 开始看到了这个,还以为这个bug没解决呢,后来想想不可能,这么容易改的,早应该有人改掉了,继续搜
  2. 看见了这个,遂尝试使用下面代码,最终解决了问题:
import java.util.Base64

val decoder = Base64.getUrlDecoder();
var url = new String(decoder.decode(base_url))
参考
  • https://bugs.openjdk.java.net/browse/JDK-8162339
  • http://farenda.com/java/java-base64-url/
  • https://stackoverflow.com/questions/5641303/base64url-in-java

转载于:https://www.cnblogs.com/wswang/p/8352040.html

你可能感兴趣的:(Scala解码base64编码的URL提示Last unit does not have enough valid bits)