6个稳定版本

2.0.0 2023年7月2日
1.2.0 2023年2月2日
1.1.0 2020年9月10日
1.0.2 2020年3月16日

#613编码分类中

Download history 6377/week @ 2024-03-14 7230/week @ 2024-03-21 7012/week @ 2024-03-28 8383/week @ 2024-04-04 7858/week @ 2024-04-11 7672/week @ 2024-04-18 7149/week @ 2024-04-25 8057/week @ 2024-05-02 8022/week @ 2024-05-09 9471/week @ 2024-05-16 6939/week @ 2024-05-23 6930/week @ 2024-05-30 6656/week @ 2024-06-06 9889/week @ 2024-06-13 7830/week @ 2024-06-20 5016/week @ 2024-06-27

每月下载量30,692次
88个crate中使用(直接使用9个)

MIT/Apache

29KB
684

Rust的百分号编码字符串

Build Crate informations License Documentation

此crate提供了两种类型,PctStrPctString,类似于strString,表示在URL、URI、IRI等中使用的百分号编码字符串。您可以使用它们进行编码、解码和比较百分号编码字符串。

基本用法

您可以通过在一个str切片上构建一个PctStr切片来解析/解码百分号编码字符串。

use pct_str::PctStr;

let pct_str = PctStr::new("Hello%20World%21").unwrap();
assert_eq!(pct_str, "Hello World!");

let decoded_string: String = pct_str.decode();
assert_eq!(decoded_string, "Hello World!")

要创建新的百分号编码字符串,请使用PctString来复制或编码新字符串。

use pct_str::{PctString, URIReserved};

// Copy the given percent-encoded string.
let pct_string = PctString::new("Hello%20World%21").unwrap();

// Encode the given regular string.
let pct_string = PctString::encode("Hello World!".chars(), URIReserved);

assert_eq!(pct_string.as_str(), "Hello%20World%21");

您可以通过实现Encoder trait来选择由encode函数编码的字符。

use pct_str::{URIReserved, PctString};

struct CustomEncoder;

impl pct_str::Encoder for CustomEncoder {
  fn encode(&self, c: char) -> bool {
    URIReserved.encode(c) || c.is_uppercase()
  }
}

let pct_string = PctString::encode("Hello World!".chars(), CustomEncoder);
assert_eq!(pct_string.as_str(), "%48ello%20%57orld%21")

许可证

许可如下

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的,您提交的任何有意包含在作品中的贡献,将如上所述双重许可,不附加任何额外的条款或条件。

依赖关系

~320–790KB
~18K SLoC