您的位置:首页 > 其它

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

2018-01-25 16:52 2987 查看
问题描述

开始使用
Base64.getMimeDecoder().decode(base_url).map(_.toChar).mkString
去解码,部分数据也提示如题的错误

然后尝试使用
Base64.getUrlDecoder().decode(base_url).map(_.toChar).mkString
,会提示
decode
不属于
getUrlDecoder


原因

原因应该是编码后的URL长度不符合要求(要求长度是4的倍数),导致的这个问题

解决

开始看到了这个,还以为这个bug没解决呢,后来想想不可能,这么容易改的,早应该有人改掉了,继续搜

看见了这个,遂尝试使用下面代码,最终解决了问题:

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐