我有一个base64编码的字符串,是用php编码的,现在我必须用java解码成原始字符串.

第一次,我试着按java.util.Base64.getDecoder().decode(encodedString)解码.

但它扔了Illegal base64 character 25个.

error message pic

经过多次try ,我以org.asynchttpclient.util.Base64.decode(encodedString)分成功

但是,有什么区别?太多了!

推荐答案

根据文件:org.asynchttpclient.util.Base64

实现RFC 2045定义的"base64"二进制编码方案.

这就是多用途互联网邮件扩展(哑剧表演)RFC 2045的实现

根据文件:java.util.Base64.getDecoder()

返回一个Base64.使用基本类型base64进行解码的解码器

基本的

使用RFC 4648RFC 2045表1中规定的"Base64字母表"进行编码和解码操作.编码器没有添加任何

java.util.Base64.getDecoder()根据RFC 4648返回解码器.解码器拒绝包含base64字母表以外字符的数据.这不是哑剧表演实现.

要有同样的行为,你需要使用java.util.Base64.getMimeDecoder()

哑剧表演

使用RFC 2045表1中规定的"Base64字母表"进行

The 哑剧表演 encoder generates a Base64-encoded output using the basic alphabet. Each line of the output is no longer than 76 characters. Also, it ends with a carriage return followed by a linefeed (\r\n).

What is the difference between base64 and 哑剧表演 base 64?

Java相关问答推荐

如何审查Java dtos中的自定义注释字段?

为什么我们仍然需要实现noArgsConstructor如果Java默认提供一个非参数化的构造函数?''

基于调车场算法的科学计算器

Java:使用Class.cast()将对象转换为原始数组

为什么S的文档中说常量方法句柄不能在类的常量池中表示?

更新AWS凭据

测试容器无法加载类路径初始化脚本

Jenv-相同的Java版本,但带有前缀

如何在一行中使用Dijkstra中的Java Stream

如何在Cosmos DB(Java SDK)中增加默认响应大小

在Frege中,我如何将一个字符串安全地转换为一个可能的Int?

当b是一个字节并且在Java中值为-1时,为什么b>;>;>;1总是等于-1?

如何使用Criteria Builder处理一对多关系中的空值?

AWS Java SDK v2.x中没有setObjectAcl方法

为什么这种递归会有这样的行为?

基于Java中mm/dd/yy格式的最近日期对数组列表进行排序

在WHILE()循环初始化部分中声明和初始化变量的Java语法?

java21预览未命名的符号用于try-with-resources

什么是;u〃;平均值;jdku;在java开发工具包中?

Xml Reader 将 BMP 外部的字符解析为代理项对,这会导致无效的 xml