java.lang.IllegalArgumentException: Illegal base64 character 20
时间: 2023-10-12 13:02:56 浏览: 207
根据引用,当使用jdk8对URL参数进行编码、解码时出现java.lang.IllegalArgumentException: Illegal base64 character 20异常。在查找解决方法时,可以尝试将编码方法getDecoder()修改为getUrlDecoder(),解码方法修改为getUrlEncoder()来解决该问题。
根据引用,在测试时,可以使用以下代码进行两种编码方式的加密:
```java
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class TestBase64 {
public static void main(String[] args) {
String str01 = "这是一个测试两种编码方式的字符串";
Base64.Encoder encoderBase = Base64.getEncoder();
Base64.Encoder encoderMIME = Base64.getMimeEncoder();
String encodeBase = encoderBase.encodeToString(str01.getBytes(StandardCharsets.UTF_8));
String encodeMIME = encoderMIME.encodeToString(str01.getBytes(StandardCharsets.UTF_8));
System.out.println("基本编码方式:\n" + encodeBase);
System.out.println("MIME编码方式:\n" + encodeMIME);
}
}
```
根据引用,在解决问题之后,可以回顾为什么会出现该问题。在这个示例中,将项目中的解码方式改为使用MIME型的base64编码方案可以解决解码错误的问题。而原本的Base64解码方式使用的是基本型的base64编码方案。两种编码方式之间的区别在于编码结果的格式和行分隔符的处理。基本方式输出映射到一组字符A-Za-z0-9 /,编码不添加任何行标,解码仅支持A-Za-z0-9 /。而MIME方式输出映射到MIME友好格式,每行不超过76字符,并使用回车和换行分隔行,编码结果最后没有行分隔符。
所以,当出现java.lang.IllegalArgumentException: Illegal base64 character 20异常时,可以尝试使用getUrlDecoder()和getUrlEncoder()方法,并了解基本方式和MIME方式的编码规则的区别。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [解决Base64报java.lang.IllegalArgumentException: Illegal base64 character 20](https://blog.csdn.net/tiankai92_/article/details/112606904)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Base64解码遇到java.lang.IllegalArgumentException: Illegal base64 character d](https://blog.csdn.net/qq_48455576/article/details/121295709)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文