7 个稳定版本
2.3.1 | 2023 年 11 月 22 日 |
---|---|
2.3.0 | 2023 年 6 月 5 日 |
2.2.0 | 2022 年 9 月 8 日 |
2.1.0 | 2019 年 8 月 5 日 |
1.0.0 | 2017 年 6 月 13 日 |
260 在 文本处理 中
8,566,839 每月下载量
在 32,483 个 crate 中使用 (904 直接)
18KB
400 代码行
URL 使用特殊字符来指示请求的各个部分。例如,一个 ?
问号标志着路径的结束和查询字符串的开始。为了使该字符存在于路径中,它需要以不同的方式进行编码。
百分号编码用 %
转义字符替换保留字符,后跟作为两个十六进制数字的字节值。例如,ASCII 空格被替换为 %20
。
编码时,可以(并且应该,为了可读性)保留的字符集取决于上下文。上面提到的 ?
问号在查询字符串中直接使用时不是一个分隔符,因此不需要编码。`AsciiSet
` 参数允许调用者配置此设置。
这个 crate 故意不提供许多不同的集合。用户应考虑编码字符串将在什么上下文中使用,阅读相关规范,并定义自己的集合。这是通过使用现有集合的 `add` 方法来完成的。
示例
use percent_encoding::{utf8_percent_encode, AsciiSet, CONTROLS};
/// https://url.spec.whatwg.org/#fragment-percent-encode-set
const FRAGMENT: &AsciiSet = &CONTROLS.add(b' ').add(b'"').add(b'<').add(b'>').add(b'`');
assert_eq!(utf8_percent_encode("foo <bar>", FRAGMENT).to_string(), "foo%20%3Cbar%3E");