URL Escape

CI

This library is for encoding/escaping special characters in URLs and decoding/unescaping URLs as well.

Usage

Encoding

This crate provides some encode_* functions to encode URL text in different situations.

For example, to put a text to a fragment, use the encode_fragment function.

```rust extern crate url_escape;

asserteq!("a%20%3E%20b?", urlescape::encode_fragment("a > b?")); ```

The functions suffixed with _to_writer, _to_vec or _to_string are useful to generate URL text.

```rust extern crate url_escape;

let mut url = String::from("https://"); asserteq!("admin%40example.com", urlescape::encodeuserinfotostring("admin@example.com", &mut url)); url.pushstr("@127.0.0.1/"); asserteq!("%E4%B8%AD%E6%96%87%E5%AD%97/eng/12%2034", urlescape::encodepathtostring("中文字/eng/12 34", &mut url)); url.push('/'); asserteq!(r"56%2F78", urlescape::encodecomponenttostring("56/78", &mut url)); url.push('?'); asserteq!(r"a=1&b=a%20b%20c", urlescape::encodequeryto_string("a=1&b=a b c", &mut url));

assert_eq!("https://admin%40example.com@127.0.0.1/%E4%B8%AD%E6%96%87%E5%AD%97/eng/12%2034/56%2F78?a=1&b=a%20b%20c", url); ```

Decoding

```rust extern crate url_escape;

asserteq!("中文字/eng/12 34", urlescape::decode("%E4%B8%AD%E6%96%87%E5%AD%97/eng/12%2034")); ```

Crates.io

https://crates.io/crates/url-escape

Documentation

https://docs.rs/url-escape

License

MIT