package org.example;
import org.junit.Test;
import java.util.Base64;
import java.util.UUID;
public class EncodeAndDecode {
/**
* Java 8基本Base64 String编码处理测试 Java 8 String编码 对原数据进行编码
*/
@Test
public void StringEncode() {
String originalInput = "jake";
String encodedString = Base64.getEncoder().encodeToString(originalInput.getBytes());
System.out.println(encodedString);
}
/**
* Java 8基本Base64 String解码码处理测试 Java 8 String解码 对编码数据进行编码
*/
@Test
public void StringDecode() {
String encodedString = "amFrZQ==";
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
String decodedString = new String(decodedBytes);
System.out.println(decodedString);
}
/**
* 在Base64编码中,输出编码的String的长度必须是三的倍数。
* 如果不是,输出将用其他填充字符(=)填充。
* 在解码时,这些多余的填充字符将被丢弃。
* 如果我们需要跳过输出的填充-也许是因为永远不会将结果String解码回去-我们可以简单地选择不使用填充进行编码
*/
@Test
public void StringTDecode() {
String originalInput = "jake";
String encodedString = Base64.getEncoder().withoutPadding().encodeToString(originalInput.getBytes());
System.out.println(encodedString);
}
/**
* URL编码处理测试 Java 8 URL编码 对原数据进行编码
*/
@Test
public void UrlEncode() {
String originalUrl = "https://www.google.co.nz/?gfe_rd=cr&ei=dzbFV&gws_rd=ssl#q=java";
String encodedUrl = Base64.getUrlEncoder().encodeToString(originalUrl.getBytes());
System.out.println(encodedUrl);
}
/**
* URL解码处理测试 Java 8 URL解码 对编码数据进行解码
*/
@Test
public void UrlDecode() {
String encodedUrl = "aHR0cHM6Ly93d3cuZ29vZ2xlLmNvLm56Lz9nZmVfcmQ9Y3ImZWk9ZHpiRlYmZ3dzX3JkPXNzbCNxPWphdmE=";
byte[] decodedBytes = Base64.getUrlDecoder().decode(encodedUrl);
String decodedUrl = new String(decodedBytes);
System.out.println(decodedUrl);
}
/**
* Java 8 MIME编码
*/
@Test
public void encodedMime() {
StringBuilder buffer = getMimeBuffer();
byte[] encodedAsBytes = buffer.toString().getBytes();
String encodedMime = Base64.getMimeEncoder().encodeToString(encodedAsBytes);
System.out.println(encodedMime);
}
/**
* 解码
*/
@Test
public void dencodeMime() {
String encodedMime = "MTNmZjIxZmQtNjllMi00ZDZiLTk0NTEtZTY1OGRkOGIwNDFjMDk3NWIyNTEtOTI3MC00ODQ4LTg2\n" +
"MWUtMzc3MWViNjc4MTMwMDA3OGQyZjYtMmQxNi00M2I2LTg2YjAtNjM1NmI0OGFjODBmZmQ1MjVi\n" +
"MGItNmQ2Yi00NzRlLWFhNGItOWVlZDVhZWNlZmIxYzkyYjRjMTctZTc4Zi00MDUxLThlNDktMWQy\n" +
"Mjk4ZjVlNTZlMDFhMmFjNmMtYmUyZC00NTlmLWEyOWItMzE3YzcxOGRhMDQ5ZDhiODM4MGMtMGIx\n" +
"Yy00NGJkLTkwMjYtMzJiYzNkNWE4YjMyOWUwNjQ1MjEtMzUzZS00NTFjLThjNDktNzc1ZWUxZjZk\n" +
"YjlmMGNhNjEzOGEtM2JhNi00NWYxLThmYjYtYWFjZWYxZWEyYzA1MWJkMjA1MjUtNmRlNy00OWI3\n" +
"LWEwZTMtYzIwNTA4N2VjMDcy";
byte[] decodedBytes = Base64.getMimeDecoder().decode(encodedMime);
String decodedMime = new String(decodedBytes);
System.out.println(decodedMime);
}
private static StringBuilder getMimeBuffer() {
StringBuilder buffer = new StringBuilder();
for (int count = 0; count < 10; ++count) {
buffer.append(UUID.randomUUID().toString());
}
return buffer;
}
}
java 编码和解码
最新推荐文章于 2022-08-14 11:13:25 发布
该博客主要展示了Java 8中Base64编码与解码的相关测试代码。涵盖了基本String、URL、MIME的编码与解码,还提及了编码时填充字符的处理。通过这些测试,可了解Java 8中Base64编码与解码的具体实现方式。
641

被折叠的 条评论
为什么被折叠?



