URL Encode and Decode

Type or past your text into the text area and click "Encode" or "Decode" to start the process of url encoding or decoding.


Meet URL Decode and Encode, a simple online tool that does exactly what it says: decode from URL encoding as well as encode to it quickly and easily. A URL hassle-free encode your data or decode it into a human-readable format.

URL encoding, also known as "percent encoding", is a mechanism for encoding information in a URI. Although it is known as URL encoding, it is actually used more generally within the main set of Uniform Resource Identifiers (URI), which includes both a Uniform Resource Locator (URL) and a Uniform Resource Name (URN). As such, it is also used to prepare the "application/x-www-form-urlencoded" media type data, and is also often used to submit HTML form data in HTTP requests.

Advanced options
  • Character set: Our website uses the UTF-8 character set, so your input data is sent in this format. Change this option if you want to convert the data to another character set before encoding. Note that in the case of text data, the cipher system does not contain the character set, so you may have to select the appropriate set during the decryption process. As for files, the default option is binary, which will delete any conversion; This option is required for everything except for plain text documents.
  • Newline separator: Unix and Windows systems use different line break characters, so prior to encoding either variant will be replaced within your data by the selected option. For the files section, this is partially irrelevant since files already contain the corresponding separators, but you can define which one to use for the "encode each line separately" and "split lines into chunks" functions.
  • Encode each line separately: Even newline characters are converted to their percent-encoded forms. Use this option if you want to encode multiple independent data entries separated with line breaks. (*)
  • Split lines into chunks: The encoded data will become a continuous text without any whitespaces, so check this option if you want to break it up into multiple lines. The applied character limit is defined in the MIME (RFC 2045) specification, which states that the encoded lines must be no more than 76 characters long. (*)
  • Live mode: When you turn on this option the entered data is encoded immediately with your browser's built-in JavaScript functions, without sending any information to our servers. Currently this mode supports only the UTF-8 character set.
(*) These options cannot be enabled simultaneously since the resulting output would not be valid for the majority of applications.

Safe and secure

All communications with our servers come through secure SSL encrypted connections (https). We delete uploaded files from our servers immediately after being processed and the resulting downloadable file is deleted right after the first download attempt or 15 minutes of inactivity (whichever is shorter). We do not keep or inspect the contents of the submitted data or uploaded files in any way. Read our privacy policy below for more details.

Completely free

Our tool is free to use. From now on, you don't need to download any software for such simple tasks.

Details of the URL-encoding

Types of URI characters

The characters allowed in a URI are either reserved or unreserved (or a percent character as part of a percent-encoding). Reserved characters are characters that sometimes have special meaning. For example, forward slash characters are used to separate different parts of a URL (or more generally, a URI). Unreserved characters have no such special meanings. Using percent-encoding, reserved characters are represented using special character sequences. The sets of reserved and unreserved characters and the circumstances under which certain reserved characters have special meaning have changed slightly with each new revision of specifications that govern URIs and URI schemes.

RFC 3986 section 2.2 Reserved Characters (January 2005)
! * ' ( ) ; : @ & = + $ , / ? # [ ]

RFC 3986 section 2.3 Unreserved Characters (January 2005)
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 - _ . ~

Other characters in a URI must be percent encoded.

Percent-encoding reserved characters

When a character from the reserved set (a "reserved character") has special meaning (a "reserved purpose") in a particular context and a URI scheme says that it is necessary to use that character for some other purpose, then the character must be percent-encoded. Percent-encoding a reserved character means converting the character to its corresponding byte value in ASCII and then representing that value as a pair of hexadecimal digits. The digits, preceded by a percent sign ("%"), are then used in the URI in place of the reserved character. (For a non-ASCII character, it is typically converted to its byte sequence in UTF-8, and then each byte value is represented as above.)

The reserved character "/", for example, if used in the "path" component of a URI, has the special meaning of being a delimiter between path segments. If, according to a given URI scheme, "/" needs to be in a path segment, then the three characters "%2F" (or "%2f") must be used in the segment instead of a "/".

Reserved characters after percent-encoding
! # $ & ' ( ) * + , / : ; = ? @ [ ]
%21 %23 %24 %26 %27 %28 %29 %2A %2B %2C %2F %3A %3B %3D %3F %40 %5B %5D

Reserved characters that have no reserved purpose in a particular context may also be percent-encoded but are not semantically different from other characters.

In the "query" component of a URI (the part after a "?" character), for example, "/" is still considered a reserved character but it normally has no reserved purpose (unless a particular URI scheme says otherwise). The character does not need to be percent-encoded when it has no reserved purpose.

URIs that differ only by whether a reserved character is percent-encoded or not are normally considered not equivalent (denoting the same resource) unless it is the case that the reserved characters in question have no reserved purpose. This determination is dependent upon the rules established for reserved characters by individual URI schemes.

Percent-encoding unreserved characters

Characters from the unreserved set never need to be percent-encoded.

URIs that differ only by whether an unreserved character is percent-encoded or not are equivalent by definition, but URI processors, in practice, may not always treat them equivalently. For example, URI consumers shouldn't treat "%41" differently from "A" ("%41" is the percent-encoding of "A") or "%7E" differently from "~", but some do. For maximum interoperability, URI producers are therefore discouraged from percent-encoding unreserved characters.

Percent-encoding the percent character

Because the percent ("%") character serves as the indicator for percent-encoded octets, it must be percent-encoded as "%25" for that octet to be used as data within a URI.

Percent-encoding arbitrary data

Most URI schemes involve the representation of arbitrary data, such as an IP address or file system path, as components of a URI. URI scheme specifications should, but often don't, provide an explicit mapping between URI characters and all possible data values being represented by those characters.

Binary data

Since the publication of RFC 1738 in 1994, it has been specified that schemes that provide for the representation of binary data in a URI must divide the data into 8-bit bytes and percent-encode each byte in the same manner as above. Byte value 0F (hexadecimal), for example, should be represented by "%0F", but byte value 41 (hexadecimal) can be represented by "A", or "%41". The use of unencoded characters for alphanumeric and other unreserved characters is typically preferred because it results in shorter URLs.

Character data

The percentage procedure for encoding binary data has often been extrapolated, sometimes improperly or without specifying it completely, to apply to character-based data. In the formative years of the World Wide Web, when dealing with data characters in ASCII reference and using their corresponding bytes in ASCII as the basis for defining percentage-coded sequences, this practice was relatively harmless; Many people assumed that characters and bytes mapped one-to-one and were interchangeable. However, the need to represent characters outside of ASCII has grown rapidly and URI schemas and protocols often fail to provide standard rules for preparing character data for inclusion in a URI. Thus web applications began to use different, multi-byte, stateful encodings and other non-ASCII-compliant encodings as the basis for percentage encoding, resulting in ambiguity as well as difficulty in interpreting URIs reliably.

For example, many schemas and protocols based on RFCs 1738 and 2396 assume that data characters will be converted to bytes according to some undefined character encoding before being represented in URI by non-reserved characters or percent-encoded bytes. If the system does not allow URI to provide a hint about which encoding was used, or if the encoding conflicts with the use of ASCII the percentage of encoding reserved and non-reserved characters, then URI interpreted cannot be relied upon. Some schemes fail to calculate the encoding at all and instead only suggest that data characters be mapped directly to URI characters, leaving it up to individual users to decide if and how to encode the non-reserved or unprivileged data characters.

Common characters after percent-encoding (ASCII or UTF-8 based)
newline space " % - . < > \ ^ _ ` { | } ~
%0A or %0D or %0D%0A %20 %22 %25 %2D %2E %3C %3E %5C %5E %5F %60 %7B %7C %7D %7E

Arbitrary character data is sometimes percent-encoded and used in non-URI situations, such as for password obfuscation programs, or other system-specific translation protocols.