encodeQueryComponent 静态方法
根据 HTML 4.01 规则对字符串 component
进行编码,将 HTML 表单的 posting 编码为一个查询字符串组件。
首先使用 encoding
将组件编码为字节。默认使用 utf8 编码,该编码保留了所有不需要编码的字符。
然后将生成的字节进行“百分号编码”。这会将空格(U+0020)转换为加号('+'),并且将除了 ASCII 十进制数字、字母或 '-._~' 之外的所有字节写入一个百分号符号 '%' 后跟字节的两位十六进制表示。
请注意,需要百分号编码的字符集是 HTML 4.01 所要求集的超集,因为它引用了 RFC 1738 的保留字符。
在手动编码查询组件时,请注意在构建查询字符串之前分别对每个部分进行编码。
为了避免显式编码查询,在构建一个 Uri 时使用 queryParameters 可选命名字符串参数。
有关更多详细信息,请参阅 https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2。
实现
static String encodeQueryComponent(String component,
{Encoding encoding = utf8}) {
return _Uri._uriEncode(_Uri._unreservedTable, component, encoding, true);
}