encodeQueryComponent 静态方法

String encodeQueryComponent(
  1. String component, {
  2. Encoding encoding = utf8,
})

根据 HTML 4.01 规则对字符串 component 进行编码,作为查询字符串组件的发布。

首先使用 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);
}