= urlencode

urlencode is a CLI utility for URL-encoding or -decoding strings.

== Usage

You can give it a positional argument for a single string, or you can pipe input to it from stdin.

[source,bash]

$ urlencode 'foo bar' foo%20bar

$ echo -e "foo bar\nbaz quux" | urlencode foo%20bar

baz%20quux

You can pass -d or --decode to decode the input.

[source,bash]

$ urlencode -d 'foo%20bar' foo bar

$ echo -e "foo%20bar\nbaz%20quux" | urlencode -d foo bar

baz quux

Run urlencode --help to see all options.

=== Encode sets

Since different parts of a URL have different encoding requirements, there are many encode sets to choose from. See https://docs.rs/percent-encoding/1.0.0/percent_encoding/index.html[this documentation page] for an explanation of each. They can be specified with the -e or --encode-set option:

[source,bash]

$ echo 'https://docs.rs/percent-encoding/1.0.0/percentencoding/index.html' | urlencode -e path https:%2F%2Fdocs.rs%2Fpercent-encoding%2F1.0.0%2Fpercentencoding%2Findex.html

$ echo 'https://docs.rs/percent-encoding/1.0.0/percent_encoding/index.html' | urlencode -e userinfo

https%3A%2F%2Fdocs.rs%2Fpercent-encoding%2F1.0.0%2Fpercent_encoding%2Findex.html

== Installation

=== Cargo

You can install with Cargo with:

[source,bash]

$ cargo install urlencode