Java编码与解码

首先区分加密与编码并不是一回事,

本节主要讲述常见的三种编解码方式,分别为:Unicode、URL、Base64。

  1. 常见编码算法:

    • Unicode编码:每一字符都可变成以 \u 开头,长度为6的字符串。
    • URL编码:以百分号%开头,全大写。由于中文在utf-8中大多数以3字节(即24比特位)表示,所以每个汉字都会变成以百分号%开头、紧接着2位16进制数,一共三份、总长度为9的字符串。
    • Base64编码:把二进制数据变成文本格式,这样在很多文本中就可以处理二进制数据。例如要在电子邮件中添加一个二进制文件,就可以使用Base64编码,然后以文本的形式传送;或者将其他加密方式产生的二进制密文转化为十六进制的字符串密文。它会把原始数据的长度【约】增加1/3,但其他编码算法并不一定比其更优。
  2. Java常见解码思路:

    • 首先获取被编码的字符流,即byte[]。因为byte是二进制数0/1,相当于获取了最原始的二进制数据,1字节等于8位二进制数bit,范围从-128 ~ 127。
    • 利用String等方式尝试不同的字符集,解码。

    【本质】:用对应的“字符集”来解二进制码。

    // 指定了一种编码方式
    byte[] bytes   = "中文".getBytes("GBK");
    
    // 用相对应的 “字符集” 方式来解码
    String msg = new String(bytes, 
评论 206
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值