URL Encoding Explained: When and How to Encode

Percent-encoding for query strings and paths—encodeURIComponent rules, JavaScript examples, and a free local encoder with no server upload.

Published on December 28, 2024

Written by Muhammad Abdullah Rauf · Founder, EverydayTools.pro

URL encoding (also called percent encoding) is a fundamental concept in web development. It ensures that URLs work correctly across all browsers, servers, and systems by converting special characters into a safe format. Understanding when and how to encode URLs is essential for building robust web applications and APIs.

This comprehensive guide will teach you everything about URL encoding, from basic concepts to practical examples. You'll learn when encoding is necessary, how different encoding methods work, and best practices for handling URLs in your applications.

Try it instantly: Paste any URL or text into our free encoder — get percent-encoded output in one click, no signup.

Open URL Encoder →

Quick Start: Need to encode or decode a URL right now? Try our free URL Encoder/Decoder—it handles component encoding, full URL encoding, and decoding with instant results.

What is URL Encoding?

URL encoding converts special characters, spaces, and non-ASCII characters into a format that can be safely transmitted in URLs. Special characters are replaced with a percent sign (%) followed by two hexadecimal digits representing the character's ASCII code.

Why URL Encoding Exists

  • URL Syntax: URLs have reserved characters (:, /, ?, #, etc.) that have special meaning. Encoding allows these characters to be used as data.
  • Character Limitations: URLs can only contain ASCII characters. Non-ASCII characters must be encoded.
  • Space Handling: Spaces aren't allowed in URLs and must be encoded as %20 or +.
  • Special Characters: Characters like &, =, and ? have special meaning in URLs and need encoding when used as data.
  • International Characters: Unicode characters must be encoded to work in URLs.

Common Encoded Characters

CharacterEncodedDescription
Space%20Space character
&%26Ampersand
=%3DEquals sign
?%3FQuestion mark
#%23Hash/pound
+%2BPlus sign
@%40At symbol

When to Encode URLs

1. Query Parameters

Always encode query parameter values. Special characters in values can break URL parsing.

Example: ?search=hello world should be ?search=hello%20world

2. Form Data

Encode form field values when submitting via GET or in application/x-www-form-urlencoded format.

Example: Form fields with special characters need encoding before submission.

3. Path Segments

Encode path segments that contain special characters or spaces.

Example: /user/john doe should be /user/john%20doe

4. User Input

Always encode user-provided data before including it in URLs to prevent errors and security issues.

Security: Encoding user input helps prevent URL injection attacks.

5. International Characters

Encode non-ASCII characters (Unicode) to ensure compatibility across all systems.

Example: Characters like é, ñ, 中文 must be encoded.

How URL Encoding Works

URL encoding follows a simple pattern: replace each character that needs encoding with a percent sign (%) followed by two hexadecimal digits representing the character's ASCII code.

Encoding Process

  1. Identify Special Characters: Find characters that need encoding (spaces, special chars, non-ASCII).
  2. Get ASCII Code: Look up the ASCII code for the character (e.g., space = 32).
  3. Convert to Hexadecimal: Convert the ASCII code to hexadecimal (32 = 20 in hex).
  4. Add Percent Sign: Prepend % to the hex value (%20).
  5. Replace Character: Replace the original character with the encoded version.

Example: Encoding "Hello World"

Original: Hello World

Encoded: Hello%20World

The space (ASCII 32 = hex 20) is replaced with %20.

Types of URL Encoding

1. encodeURIComponent (Component Encoding)

Encodes everything including reserved characters. Use this for query parameter values and form data.

Example: encodeURIComponent("hello world")

Result: hello%20world

Encodes spaces, special characters, and reserved URL characters.

2. encodeURI (Full URL Encoding)

Encodes special characters but preserves URL structure (:, /, ?, #). Use this for encoding entire URLs.

Example: encodeURI("https://example.com/path?q=hello world")

Result: https://example.com/path?q=hello%20world

Preserves :, /, ?, # but encodes spaces and other special characters.

3. Form Data Encoding (application/x-www-form-urlencoded)

Similar to component encoding but spaces are encoded as + instead of %20. Used for HTML form submissions.

Example: name=John Doe&email=john@example.com

Spaces become +, special characters are percent-encoded.

URL Encoding Examples

Example 1: Query Parameter with Space

Original: ?q=hello world

Encoded: ?q=hello%20world

Example 2: Special Characters

Original: ?name=John&Doe

Encoded: ?name=John%26Doe

The & is encoded as %26 to prevent it from being interpreted as a parameter separator.

Example 3: International Characters

Original: ?city=München

Encoded: ?city=M%C3%BCnchen

The ü is UTF-8 encoded as %C3%BC.

Example 4: Multiple Parameters

Original: ?name=John Doe&age=30&city=New York

Encoded: ?name=John%20Doe&age=30&city=New%20York

Each parameter value is encoded separately.

Best Practices for URL Encoding

  • Encode Early: Encode data as soon as you receive it from users, before storing or processing. This prevents encoding issues later.
  • Use the Right Method: Use encodeURIComponent for query parameters, encodeURI for full URLs, and form encoding for form submissions.
  • Don't Double-Encode: Avoid encoding already-encoded strings. Check if data is already encoded before encoding again.
  • Decode on Server: Always decode URL parameters on the server side before using them. Don't trust client-side encoding.
  • Handle International Characters: Use UTF-8 encoding for international characters. Most modern systems handle this automatically.
  • Test Edge Cases: Test with special characters, spaces, Unicode, and very long URLs to ensure proper encoding.
  • Use URLSearchParams: In JavaScript, use URLSearchParams API for building query strings—it handles encoding automatically.
  • Validate After Decoding: After decoding, validate the data to ensure it matches expected format and prevent injection attacks.

Security Tip: Always validate and sanitize decoded URL parameters on the server side. URL encoding is not encryption—it's just formatting. Never trust client-provided data without validation. If decoded params contain JSON blobs, run them through JSON Validator before parsing in production code.

Conclusion

URL encoding is a fundamental skill for web developers. Understanding when and how to encode URLs ensures your applications work correctly across all browsers and systems, handle international characters properly, and maintain security.

Remember to use the right encoding method for your use case, encode early, decode on the server, and always validate decoded data. With proper URL encoding, you'll build more robust and reliable web applications.

Ready to encode or decode URLs? Use our free URL Encoder/Decoder to encode query parameters, decode URLs, or encode full URLs. No signup required, completely free, and works instantly in your browser.

Encode/Decode URLs Now →
By Muhammad Abdullah Rauf · Founder, EverydayTools.proUpdated 2026

Quick answers

Concise answers for common searches — definitions, steps, and comparisons.

encodeURI vs encodeURIComponent?

encodeURI keeps : / ? # intact for full URLs. encodeURIComponent encodes everything—use for individual query values.

Space: %20 or +?

%20 in URL paths and modern queries; + means space only in HTML form POST bodies (application/x-www-form-urlencoded).

Is URL data uploaded on EverydayTools?

No—all encoding and decoding runs locally in JavaScript in your browser.

Who uses URL Encoding Explained: When and How to Encode?

Common real-world scenarios where this tool saves time.

Query strings with user input

Encode search terms and filters so & and = are not parsed as delimiters.

OAuth and redirect URLs

Encode redirect_uri parameters to prevent broken authorization flows.

Debugging APIs

Decode percent-encoded responses to read error messages in logs.

Advertisement

Privacy, accuracy, and trust

Privacy

URL Encoder/Decoder processes input locally; do not paste production secrets into untrusted server tools.

Accuracy

Aligned with RFC 3986 and modern browser encode/decode behavior.

More free tools for the same workflow.

Advertisement

Reviewed by EverydayTools Editorial Team on 2026-05-20.