使用 rust 在 url 中添加空格来打破日期和时间

问题描述 投票:0回答:1

我正在尝试使用 urlencoding 来解码 url 日期时间,就像 Rust 中的这样:

fn main() {
    let result = urlencoding::decode("gmt_create=2024-05-05+11%3A14%3A19");
    print!("{}",result.unwrap_or_default().into_owned());
}

url 参数很长。如何使日期和时间与空格连接?不使用 + 。这是货物.toml:

[dependencies]
urlencoding = "2.1.3"

我希望结果看起来像这样:

gmt_payment=2024-05-05 00:05:28
。我尝试过使用
decode_component
但在urlencoding中没有找到这个函数。我也尝试过这样:

use percent_encoding::percent_decode_str;

fn main() {
    let encoded_str = "gmt_create=2024-05-05+11%3A14%3A19";
    let decoded_str = percent_decode_str(encoded_str).decode_utf8().unwrap();
    println!("Decoded string: {}", decoded_str);
}

还是没用。

http url rust
1个回答
0
投票

我建议您使用 form-urlencoded 板条箱。有一些细微差别,

+
不会在 URL 中进行解析(查询字符串除外),因此 urlencoding 和百分比编码 crate 不合适。

令人烦恼的是,这个板条箱没有简单地将字符串解码为另一个字符串的方法,它仅将其解析为键值对迭代器。但我希望你能成功:

use form_urlencoded; // 1.2.1

fn main() {
    let (key, value) = form_urlencoded::parse("gmt_create=2024-05-05+11%3A14%3A19".as_bytes())
        .next()
        .unwrap_or_default();

    println!("{key}={value}");
}
gmt_create=2024-05-05 11:14:19
© www.soinside.com 2019 - 2024. All rights reserved.