Android 编码解码相关

本文深入探讨了URL编码与解码、Base64编码与解码、Base64URL安全编码、HTML编码与解码等编码转换技术,通过具体的代码示例展示了如何在不同场景下进行数据的编码与解码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

urlEncode                         : URL编码
urlDecode                         : URL解码
base64Encode, base64Encode2String : Base64编码
base64Decode                      : Base64解码
base64UrlSafeEncode               : Base64URL安全编码
htmlEncode                        : Html编码
htmlDecode                        : Html解码



@RunWith(RobolectricTestRunner.class)
@Config(manifest = Config.NONE)
public class EncodeUtilsTest {

    String urlEncodeString = "%E5%93%88%E5%93%88%E5%93%88";
    String html = "<html>" +
            "<head>" +
            "<title>我的第一个 HTML 页面</title>" +
            "</head>" +
            "<body>" +
            "<p>body 元素的内容会显示在浏览器中。</p>" +
            "<p>title 元素的内容会显示在浏览器的标题栏中。</p>" +
            "</body>" +
            "</html>";
    String encodeHtml = "&lt;html&gt;&lt;head&gt;&lt;title&gt;&#25105;&#30340;&#31532;&#19968;&#20010; HTML &#39029;&#38754;&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;p&gt;body &#20803;&#32032;&#30340;&#20869;&#23481;&#20250;&#26174;&#31034;&#22312;&#27983;&#35272;&#22120;&#20013;&#12290;&lt;/p&gt;&lt;p&gt;title &#20803;&#32032;&#30340;&#20869;&#23481;&#20250;&#26174;&#31034;&#22312;&#27983;&#35272;&#22120;&#30340;&#26631;&#39064;&#26639;&#20013;&#12290;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;";

    @Test
    public void testUrlEncode() throws Exception {
        assertThat(urlEncode("哈哈哈")).isEqualTo(urlEncodeString);
        assertThat(urlEncode("哈哈哈", "UTF-8")).isEqualTo(urlEncodeString);
    }

    @Test
    public void testUrlDecode() throws Exception {
        assertThat(urlDecode(urlEncodeString)).isEqualTo("哈哈哈");
        assertThat(urlDecode(urlEncodeString, "UTF-8")).isEqualTo("哈哈哈");
    }

    @Test
    public void testBase64EncodeAndDecode() throws Exception {
        assertThat(base64Decode(base64Encode("blankj")))
                .isEqualTo("blankj".getBytes());
        assertThat(base64Decode(base64Encode2String("blankj".getBytes())))
                .isEqualTo("blankj".getBytes());
        assertThat(base64Encode2String("blankj".getBytes()))
                .isEqualTo("Ymxhbmtq");
        assertThat(base64Encode("blankj".getBytes()))
                .isEqualTo("Ymxhbmtq".getBytes());
    }

    @Test
    public void testHtmlEncode() throws Exception {
        assertThat(htmlEncode(html)).isEqualTo(encodeHtml);
    }

    @Test
    public void testHtmlDecode() throws Exception {
        assertThat(htmlDecode(encodeHtml)).isEqualTo(html);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值