java 编码和解码

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;
    }


}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值