Hack the Hydra

URL encoder and decoder

Percent-encode text so it is safe inside a URL, or decode %20-style sequences back to readable text. Choose whether you are encoding a single value or a whole address.

🔒 Private by design: the conversion runs in this browser tab. Nothing is uploaded.

URL encoder and decoder is a free online tool by Hack the Hydra. Encode or decode URLs and query parameters with percent-encoding. Choose component or full URL mode; UTF-8 safe. Free, private, runs in your browser.

100% freeNo upload: runs in your browserNo sign-up
URL encoder and decoder: the tool with a sample file converted

Component or full URL?

Use "Component" to encode a single piece, such as a query-string value or a path segment: it escapes everything except letters, digits and - _ . ! ~ * ' ( ). That is what you want for a search term containing &, = or /. Use "Full URL" when you have a complete address and only want to escape characters that are illegal in it, such as spaces and non-ASCII letters, while keeping the structure characters : / ? & = # intact.

Non-ASCII characters

Characters outside ASCII are first converted to UTF-8 and then each byte is written as %XX, so "é" becomes %C3%A9. That is the encoding browsers and servers expect today. Decoding reverses it; if a % is not followed by two hex digits you get a clear error rather than a silent wrong answer.

The plus sign

In HTML form submissions (application/x-www-form-urlencoded), a space is written as + instead of %20. When decoding data copied from such a query string, tick "Decode + as space". Leave it off for ordinary URL paths, where + really means a plus.

Example

Encoding a query value that contains spaces, a euro sign and reserved characters.

Input

price=10€ & size=M/L

Output

price%3D10%E2%82%AC%20%26%20size%3DM%2FL

How to use

  1. Type or paste your text in the box above.
  2. The result updates as you type; change the options to switch mode.
  3. Copy the result or download it.

FAQ

Is my URL sent anywhere?

No. It uses the encodeURIComponent, encodeURI and decodeURIComponent functions built into your browser. Nothing is uploaded.

Why is my space encoded as %20 and not +?

%20 is valid everywhere in a URL. The + form only applies to form-encoded query strings.

Does encoding twice cause problems?

Yes: encoding an already-encoded string turns % into %25 and breaks the URL. Decode first if you are not sure.

What error do I get for broken input?

A stray % that is not followed by two hex digits, or bytes that are not valid UTF-8, produces a "Malformed percent-encoding" message.

Guides

More free converters

PDF to Markdown converterOCR PDF: scanned PDF to textImage to text (OCR)Word (DOCX) to Markdown converterExcel & CSV to Markdown tablesHTML to Markdown converterPowerPoint (PPTX) to Markdown converterJSON to Markdown tablePDF to text converterExcel to JSON converterMarkdown to HTML converterMerge PDF filesSplit PDF: extract pagesRotate PDFJPG to PDF converterPDF to JPG converterImage converter: PNG, JPG, WebPCompress image: JPG and WebPQR code generatorWord counterCase converterJSON formatter and validatorBase64 encode and decodeUUID v4 generatorStrong password generatorLorem ipsum generatorJSON to CSV converterRemove duplicate linesUnix timestamp converterJSON to YAML converterText diff checkerImage resizerPercentage calculatorAge calculatorHash generator (SHA-256, SHA-1, SHA-512)Color converter: HEX, RGB, HSLDays between dates calculatorYAML to JSON converterUnit converterJWT decoderBinary, hex, decimal and octal converterRoman numeral converterRegex testerCron expression explainerPDF to Markdown for ChatGPTPDF to Markdown for ClaudePDF to Markdown for RAG pipelinesPDF to Markdown for ObsidianPDF to Notion (via Markdown)Screenshot to textFrench OCR: image to textCSV to Markdown tableGoogle Docs to MarkdownJPG / JPEG to text (OCR)PNG to text (OCR)CSV to JSON converterPNG to JPG converterJPG to PNG converterWebP to PNG converter