Crates.io | urlencoding |
lib.rs | urlencoding |
version | 2.1.3 |
source | src |
created_at | 2016-09-15 10:44:56.997351 |
updated_at | 2023-07-21 15:12:17.534094 |
description | A Rust library for doing URL percentage encoding. |
homepage | https://lib.rs/urlencoding |
repository | https://github.com/kornelski/rust_urlencoding |
max_upload_size | |
id | 6499 |
size | 19,280 |
A tiny Rust library for doing URL percentage encoding and decoding. It percent-encodes everything except alphanumerics and -
, _
, .
, ~
.
When decoding +
is not treated as a space. Error recovery from incomplete percent-escapes follows the WHATWG URL standard.
To encode a string, do the following:
use urlencoding::encode;
let encoded = encode("This string will be URL encoded.");
println!("{}", encoded);
// This%20string%20will%20be%20URL%20encoded.
To decode a string, it's only slightly different:
use urlencoding::decode;
let decoded = decode("%F0%9F%91%BE%20Exterminate%21")?;
println!("{}", decoded);
// 👾 Exterminate!
To decode allowing arbitrary bytes and invalid UTF-8:
use urlencoding::decode_binary;
let binary = decode_binary(b"%F1%F2%F3%C0%C1%C2");
let decoded = String::from_utf8_lossy(&binary);
This library returns Cow
to avoid allocating when decoding/encoding is not needed. Call .into_owned()
on the Cow
to get a Vec
or String
.
This project is licensed under the MIT license. For more information see the LICENSE
file.