• 【技术累积】【点】【java】【18】URLEncode


    基础概念

    由于以URL的形式传递信息给服务器时,不允许URL中出现一些特殊字符和空格的,所以需要对URL进行编码处理。

    原理是:

    • 将要转码的字符转变为16进制;
    • 从右到左,每两位前面加%

    哪些字符是需要转化的呢?

    1. ASCII 的控制字符。
      这些字符都是不可打印的,自然需要进行转化。

    2. 一些非ASCII字符。
      这些字符自然是非法的字符范围。转化也是理所当然的了。

    3. 一些保留字符。
      很明显最常见的就是“&”了,这个如果出现在url中了,那你认为是url中的一个字符呢,还是特殊的参数分割用的呢?

    4. 就是一些不安全的字符了。
      例如:空格。为了防止引起歧义,需要被转化为“+”。

    举例

    @Test
        public void testUrlEncode() throws UnsupportedEncodingException {
            String encode = URLEncoder.encode("你好","GBK");
            String encodeUtf8 = URLEncoder.encode("你好","UTF-8");
    
            String decode = URLDecoder.decode(encodeUtf8,"GBK");
            String decodeUtf8 = URLDecoder.decode(encode,"UTF-8");
            LOGGER.info("encode={}",encode);
        }
    

    其中,编解码可以看做是一个字节是一位,例如几种常见编码所述。

    参考文章

  • 相关阅读:
    maven下载源配置
    nvm及node下载源配置
    SourceInsight 添加Symbol Lookup路径
    8.31-使用vscode进行c/c++程序设计
    10.08-vscode-plantuml建模
    6.26-vscode 配置文件
    3.5-VSCode 学习
    3.6-WizNote 常用快捷键
    10.04-CTEST-GTest
    180325-log4cplus
  • 原文地址:https://www.cnblogs.com/andy1202go/p/9754746.html
Copyright © 2020-2023  润新知