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 编码和解码
最新推荐文章于 2024-05-05 01:35:58 发布