您的位置:

在Java中如何进行URL转码

在Java中如何进行URL转码

更新:

使用Java预定义java.net.URLEncoder和java.net.URLDecoder用于URL转码和解码。

一、URL编码

URL编码常用于查询字符串或表单参数,将字符数据编码为可在URL中安全传输的格式。

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

public class Main {

    public static void main(String[] args) {
        String url = "http://example.com/query?q=";
        String query = "Java URL Encoding";
        
        try {
            String encodedQuery = URLEncoder.encode(query, "UTF-8");
            System.out.println("Encoded URL : " + url + encodedQuery);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
}

使用URLEncoder.encode()URL编码方法,第一个参数是需要编码的字符串,第二个参数是字符集。

二、URL解码

URL解码是URL编码的逆向过程,用来将URL编码后的字符串还原为原始字符串。

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

public class Main {

    public static void main(String[] args) {
        String url = "http%3A%2F%2Fexample.com%2Fquery%3Fq%3DJava+URL+Encoding";
        
        try {
            String decodedURL = URLDecoder.decode(url, "UTF-8");
            System.out.println("Decoded URL : " + decodedURL);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
}

使用URLDecoder.decode()URL解码方法,第一个参数是需要解码的字符串,第二个参数是字符集。

三、注意事项

1、URL编码只能用于URL查询字符串部分,在其它部分,如路径部分,可能会导致错误。

2、在编码过程中,字符集必须与解码过程中的字符集一致,否则可能无法正确解码。

3、当使用URLEncoder和URLDecoder时,如果没有try...catch...,那会被抛出UnsupportedEncodingException的错误。