1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
/*! # URL Escape 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; assert_eq!("a%20%3E%20b?", url_escape::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://"); assert_eq!("admin%40example.com", url_escape::encode_userinfo_to_string("admin@example.com", &mut url)); url.push_str("@127.0.0.1/"); assert_eq!("%E4%B8%AD%E6%96%87%E5%AD%97/eng/12%2034", url_escape::encode_path_to_string("中文字/eng/12 34", &mut url)); url.push('/'); assert_eq!(r"56%2F78", url_escape::encode_component_to_string("56/78", &mut url)); url.push('?'); assert_eq!(r"a=1&b=a%20b%20c", url_escape::encode_query_to_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; assert_eq!("中文字/eng/12 34", url_escape::decode("%E4%B8%AD%E6%96%87%E5%AD%97/eng/12%2034")); ``` */ pub extern crate percent_encoding; mod decode; mod encode; pub use decode::*; pub use encode::*;