Перейти к основному содержимому
FreeOnlineTools Go
Русский
explanation

Что такое URL-кодирование? Полное объяснение percent-encoding

By FreeOnlineTools Team · Updated 2026-09-02

Quick Answer

URL-кодирование (percent-encoding) заменяет unsafe символы в URL на % и две hex-цифры. Например, пробел становится %20, & становится %26. Обеспечивает передачу URL без ambiguity. Используйте наш бесплатный URL Encoder и Decoder.

Introduction

URL-кодирование, также percent-encoding, — механизм кодирования специальных символов в URL для безопасной передачи через интернет. URL могут содержать только ограниченный набор ASCII-символов —буквы, цифры и несколько reserved символов. Любой другой символ (пробелы, кавычки, не-ASCII буквы) должен быть кодирован как знак процента (%), за которым следуют две hex-цифры. URL-кодирование определено RFC 3986.

Step by Step

  1. Understand which characters need encoding

    Unreserved characters (A-Z, a-z, 0-9, -, _, ., ~) do not need encoding. Reserved characters (:, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =) have special meaning in URLs and should be encoded when used as data. All other characters (spaces, quotes, non-ASCII) must be encoded.

  2. Learn the encoding mechanism

    Each character that needs encoding is converted to its UTF-8 byte sequence, then each byte is represented as %XX where XX is the hex value. Space (0x20) → %20. The non-ASCII character 'é' (UTF-8: 0xC3 0xA9) → %C3%A9.

  3. Distinguish encodeURI vs encodeURIComponent

    encodeURI() encodes a full URL but preserves reserved characters (:/?&=) that are part of the URL structure. encodeURIComponent() encodes everything except unreserved characters — use it for query parameter values where reserved characters are data, not structure.

  4. Decode percent-encoded URLs

    Decoding reverses the encoding: %20 → space, %C3%A9 → é. Use decodeURI() for full URLs and decodeURIComponent() for query parameter values. Invalid escape sequences (like %ZZ) throw errors.

Examples

Encode a space

Input: hello world

Output: hello%20world

Encode non-ASCII text

Input: café

Output: caf%C3%A9

Encode a query parameter value

Input: name=John Doe & Co.

Output: name%3DJohn%20Doe%20%26%20Co.

Common Problems

  • Encoding the entire URL when only values need encoding —encode query parameter values, not the URL structure (://?&=).
  • Double-encoding —if a URL is already encoded, encoding again produces %2520 instead of %20. Decode first if unsure whether it is already encoded.
  • Using encodeURI vs encodeURIComponent incorrectly —encodeURI preserves URL structure characters; encodeURIComponent encodes them. Use the latter for query parameter values.
  • Invalid escape sequences —%ZZ or a single % at the end are invalid and will throw errors when decoded.

Tips

  • Always encode query parameter values that may contain spaces, special characters, or user input to prevent URL injection.
  • Use encodeURIComponent() for query parameter values, and encodeURI() for full URLs that just need unsafe characters encoded.
  • URL encoding is not encryption —anyone can decode it. Never use it to hide sensitive data.
  • Use our URL Encoder and Decoder for instant, private conversion in your browser.

Related Tools

Related Guides

References