Class UrlDecoder

java.lang.Object
org.miaixz.bus.core.net.url.UrlDecoder
All Implemented Interfaces:
Serializable

public class UrlDecoder extends Object implements Serializable
URL解码,数据内容的类型是 application/x-www-form-urlencoded。
 1. 将%20转换为空格 ;
 2. 将"%xy"转换为文本形式,xy是两位16进制的数值;
 3. 跳过不符合规范的%形式,直接输出
 
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • UrlDecoder

      public UrlDecoder()
  • Method Details

    • decodeForPath

      public static String decodeForPath(String text, Charset charset)
      解码,不对+解码
      1. 将%20转换为空格
      2. 将 "%xy"转换为文本形式,xy是两位16进制的数值
      3. 跳过不符合规范的%形式,直接输出
      Parameters:
      text - 包含URL编码后的字符串
      charset - 解码的编码,null表示不做解码
      Returns:
      解码后的字符串
    • decodeMap

      public static Map<String,String> decodeMap(String params, String charset)
      将URL参数解析为Map(也可以解析Post中的键值对参数)
      Parameters:
      params - 参数字符串(或者带参数的Path)
      charset - 字符集
      Returns:
      参数Map
    • decodeObject

      public static Map<String,List<String>> decodeObject(String params, String charset)
      将URL参数解析为Map(也可以解析Post中的键值对参数)
      Parameters:
      params - 参数字符串(或者带参数的Path)
      charset - 字符集
      Returns:
      参数Map
    • decode

      public static String decode(String text)
      解码 规则见:https://url.spec.whatwg.org/#urlencoded-parsing
         1. 将+和%20转换为空格(" ");
         2. 将"%xy"转换为文本形式,xy是两位16进制的数值;
         3. 跳过不符合规范的%形式,直接输出
       
      Parameters:
      text - 包含URL编码后的字符串
      Returns:
      解码后的字符串
    • decode

      public static String decode(String text, Charset charset)
      解码 规则见:https://url.spec.whatwg.org/#urlencoded-parsing
         1. 将+和%20转换为空格(" ");
         2. 将"%xy"转换为文本形式,xy是两位16进制的数值;
         3. 跳过不符合规范的%形式,直接输出
       
      Parameters:
      text - 包含URL编码后的字符串
      charset - 编码
      Returns:
      解码后的字符串
    • decode

      public static String decode(String text, boolean isPlusToSpace)
      解码
         1. 将%20转换为空格 ;
         2. 将"%xy"转换为文本形式,xy是两位16进制的数值;
         3. 跳过不符合规范的%形式,直接输出
       
      Parameters:
      text - 包含URL编码后的字符串
      isPlusToSpace - 是否+转换为空格
      Returns:
      解码后的字符串
    • decode

      public static String decode(String text, Charset charset, boolean isPlusToSpace)
      解码
         1. 将%20转换为空格 ;
         2. 将"%xy"转换为文本形式,xy是两位16进制的数值;
         3. 跳过不符合规范的%形式,直接输出
       
      Parameters:
      text - 包含URL编码后的字符串
      charset - 编码,null表示不做解码
      isPlusToSpace - 是否+转换为空格
      Returns:
      解码后的字符串
    • decode

      public static byte[] decode(byte[] bytes)
      解码
         1. 将+和%20转换为空格 ;
         2. 将"%xy"转换为文本形式,xy是两位16进制的数值;
         3. 跳过不符合规范的%形式,直接输出
       
      Parameters:
      bytes - url编码的bytes
      Returns:
      解码后的bytes
    • decode

      public static byte[] decode(byte[] bytes, boolean isPlusToSpace)
      解码
         1. 将%20转换为空格 ;
         2. 将"%xy"转换为文本形式,xy是两位16进制的数值;
         3. 跳过不符合规范的%形式,直接输出
       
      Parameters:
      bytes - url编码的bytes
      isPlusToSpace - 是否+转换为空格
      Returns:
      解码后的bytes