encodeQueryComponent 静态方法

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

根据 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);
}