URL编码解码

package demo.network.other;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.Arrays;

class URL编码解码 {
    public static void main(String[] args) throws UnsupportedEncodingException {
        byte[] bytes = "你好".getBytes("UTF-8");
        System.out.println("UTF-8:" + Arrays.toString(bytes));//[-28, -67, -96, -27, -91, -67]
        String URLCode = URLEncoder.encode("你好", "UTF-8");
        System.out.println("URL编码:" + URLCode);//%E4%BD%A0%E5%A5%BD
        System.out.println("URL解码:" + URLDecoder.decode(URLCode, "UTF-8"));//你好

        //自定义 转化UTF-8编码字节 为 URL编码
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < bytes.length; i++) {
            bytes[i] += 256;
            String hexString = Integer.toHexString(bytes[i]);//ffffffe4
            hexString = hexString.substring(hexString.length() - 2, hexString.length());//e4
            hexString = hexString.toUpperCase();//E4
            sb.append("%" + hexString);
        }
        System.out.println(sb);//%E4%BD%A0%E5%A5%BD
    }
}
/**
 * 3. URL编码
 *   表单的类型:Content-Type: application/x-www-form-urlencoded,就是把中文转换成%后面跟随两位的16进制。
 *   为什么要用它:在客户端和服务器之间传递中文时需要把它转换成网络适合的方式。
 * <p>
 *   * 它不是字符编码!
 *   * 它是用来在客户端与服务器之间传递参数用的一种方式!
 *   * URL编码需要先指定一种字符编码,把字符串解码后,得到byte[],然后把小于0的字节+256,再转换成16进制。前面再添加一个%。
 *   * POST请求默认就使用URL编码!tomcat会自动使用URL解码!
 *   * URL编码:String username = URLEncoder.encode(username, "utf-8");
 *   * URL解码:String username = URLDecoder.decode(username, "utf-8");
 * <p>
 *   今后我们需要把链接中的中文参数,使用url来编码!今天不行,因为html中不能给出java代码,但后面学了jsp就可以了。
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值