Package org.miaixz.bus.core.codec
Class PercentCodec
java.lang.Object
org.miaixz.bus.core.codec.PercentCodec
- All Implemented Interfaces:
Serializable,Encoder<byte[],byte[]>
百分号编码(Percent-encoding), 也称作URL编码(URL encoding)。
百分号编码可用于URI的编码,也可以用于"application/x-www-form-urlencoded"的MIME准备数据。
百分号编码会对 URI 中不允许出现的字符或者其他特殊情况的允许的字符进行编码,对于被编码的字符,最终会转为以百分号"%“开头,后面跟着两位16进制数值的形式。 举个例,空格符(SP)是不允许的字符,在 ASCII 码对应的二进制值是"00100000”,最终转为"%20"。
对于不同场景应遵循不同规范:
- URI:遵循RFC 3986保留字规范
- application/x-www-form-urlencoded,遵循W3C HTML Form content types规范,如空格须转+
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classPercentCodec构建器 由于PercentCodec本身应该是只读对象,因此将此对象的构建放在Builder中 -
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
PercentCodec
public PercentCodec()构造 [a-zA-Z0-9]默认不被编码 -
PercentCodec
构造- Parameters:
safeCharacters- 安全字符,安全字符不被编码
-
-
Method Details
-
isSafe
public boolean isSafe(char c) 检查给定字符是否为安全字符- Parameters:
c- 字符- Returns:
true表示安全,否则非安全字符
-
encode
public byte[] encode(byte[] bytes) Description copied from interface:Encoder执行编码 -
encode
将URL中的字符串编码为%形式- Parameters:
path- 需要编码的字符串charset- 编码,null返回原字符串,表示不编码customSafeChar- 自定义安全字符- Returns:
- 编码后的字符串
-