我正在尝试使用 urlencoding (版本 2.1.3)从 URL 中解码日期时间,如下所示:
fn main() {
let result = urlencoding::decode("gmt_create=2024-05-05+11%3A14%3A19");
print!("{}", result.unwrap_or_default().into_owned());
}
如何使日期和时间与空格连接(即替换加号)?我希望这个结果看起来像:
gmt_create=2024-05-05 00:05:28
。
我也尝试过像这样使用percent-encoding,但它仍然留下了“+”:
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);
}
我建议您使用 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