• URL endoce 和 decode


            URL地址中的一些字符在传输过程中需要被编码,以确保其能够正确地被解析和显示。在URL中,所有非字母数字字符都需要被编码成%后面跟着两个十六进制数的形式。

            URL的编码过程被称为"URL编码"或"百分号编码",常见的编码字符有空格(编码成"%20")、问号(编码成"%3F")、井号(编码成"%23")等。

            URL的解码过程被称为"URL解码"或"百分号解码",即将被编码的字符还原成它们实际代表的字符。编码和解码URL的方法可以通过使用编程语言的URL编码和解码函数来完成,比如在Python中可以使用urllib库的quote和unquote函数进行URL编码和解码。

            例如,将字符串"hello world"编码成URL编码后的形式就是"hello%20world",再将编码后的字符串解码就能得到原始字符串"hello world"。

            在Java中,可以使用java.net.URLEncoder类中的encode方法进行URL编码,使用java.net.URLDecoder类中的decode方法进行URL解码。以下是一个示例代码: 

    1. import java.io.UnsupportedEncodingException;
    2. import java.net.URLDecoder;
    3. import java.net.URLEncoder;
    4. public class URLEncodeDecodeExample {
    5. public static void main(String[] args) {
    6. String originalString = "hello world";
    7. try {
    8. // URL编码
    9. String encodedString = URLEncoder.encode(originalString, "UTF-8");
    10. System.out.println("Encoded string: " + encodedString);
    11. // URL解码
    12. String decodedString = URLDecoder.decode(encodedString, "UTF-8");
    13. System.out.println("Decoded string: " + decodedString);
    14. } catch (UnsupportedEncodingException e) {
    15. e.printStackTrace();
    16. }
    17. }
    18. }

    运行上述代码,输出将会是:

    1. Encoded string: hello+world
    2. Decoded string: hello world

             在URL编码过程中,空格被编码为+号(而不是%20),所以在URL解码时会将+号解码为空格。如果需要将空格编码为%20,可以使用URLEncoder.encode(originalString, "UTF-8").replaceAll("\\+","%20")进行替换操作。

    URL和编码之间存在相似之处,主要体现在以下两个方面:

    1. 都是将信息进行转换处理的方式。URL是指统一资源定位符,是将网络上的资源表示为字符串的一种方式。而编码则是将某种格式的数据转换为另一种格式的数据,以便于在不同的设备间传输或处理。

    2. 都可以增强信息的传输能力。URL通过将网络资源表示为字符串,使得用户可以通过简单的输入地址访问到网络资源。而编码则可以压缩或加密数据,减少数据传输的开销,同时也可以保护数据的安全性。

    因此,URL和编码虽然本质不同,但都具有增强信息传输能力的作用。

  • 相关阅读:
    容器内存相关知识
    SQL Serve---嵌套查询
    Spring中加密工具类DigestUtils和BCryptPasswordEncoder
    51单片机入门——数模\模数转换
    【疯壳·ARM功能手机开发教程3】整板资源介绍
    Qt 防止程序多次运行
    <string.h>字符操作函数的实现(strcpy、strcat、mem)
    深入react源码看setState究竟做了什么?
    springboot整合webSocket(看完即入门)
    智能指针介绍(C++)
  • 原文地址:https://blog.csdn.net/lly576403061/article/details/134027868