uri_encode

Crates.iouri_encode
lib.rsuri_encode
version1.0.4
created_at2021-11-14 14:07:19.963425+00
updated_at2025-12-18 14:47:37.070929+00
descriptionURI percent-encoding (encodeURI, encodeURIComponent, urlencode)
homepagehttps://github.com/jedisct1/rust-uri-encode
repositoryhttps://github.com/jedisct1/rust-uri-encode
max_upload_size
id481731
size19,779
Frank Denis (jedisct1)

documentation

https://docs.rs/uri_encode

README

uri_encode

URI percent-encoding for Rust, providing functions equivalent to JavaScript's encodeURI() and encodeURIComponent().

Installation

[dependencies]
uri_encode = "1.0"

Usage

use uri_encode::{encode_uri, encode_uri_component, encode_query_param};

// Encode a complete URL (preserves structure)
let url = encode_uri("https://example.com/path?q=hello world");
assert_eq!(url, "https://example.com/path?q=hello%20world");

// Encode a URL component (more aggressive)
let component = encode_uri_component("path/with spaces");
assert_eq!(component, "path%2fwith%20spaces");

// Encode query parameters (spaces become +)
let param = encode_query_param("hello world");
assert_eq!(param, "hello+world");

Functions

encode_uri

Encodes a complete URI while preserving its structure. Equivalent to JavaScript's encodeURI().

Preserves: A-Z a-z 0-9 - _ . ! ~ * ' ( ) ; , / ? : @ & = + $ #

encode_uri("https://example.com/hello world?name=foo bar")
// => "https://example.com/hello%20world?name=foo%20bar"

encode_uri_component

Encodes a URI component such as a path segment or query value. Equivalent to JavaScript's encodeURIComponent().

Preserves: A-Z a-z 0-9 - _ . ! ~ * ' ( )

encode_uri_component("hello world&foo=bar")
// => "hello%20world%26foo%3dbar"

encode_query_param

Encodes a query parameter using application/x-www-form-urlencoded format. Spaces become +.

encode_query_param("John Doe")
// => "John+Doe"

Character Encoding Reference

Character encode_uri encode_uri_component encode_query_param
space %20 %20 +
/ / %2f /
? ? %3f ?
& & %26 &
= = %3d =
# # %23 #

Features

  • Zero dependencies
  • No unsafe code (#![forbid(unsafe_code)])
  • Works with &str, String, or any type implementing AsRef<str>

License

ISC

Commit count: 0

cargo fmt