Кодування та декодування URL

Кодуйте та декодуйте рядки URL для безпечної обробки спеціальних символів та тексту неASCII, ідеально для параметрів запитів та передачі шляхів.

Кодувати

Режим кодування

Декодувати

Як використовувати

Кодування URL перетворює спеціальні або неASCII символи у формат %XX для безпечної передачі в URL.
Оберіть «Кодувати», щоб перетворити текст у формат, безпечний для URL (наприклад, для параметрів запитів).
Оберіть «Декодувати», щоб відновити послідовності %XX до оригінальних символів.
Поширені сценарії: обробка параметрів запитів, передача даних форм, виклики API тощо.

Швидкі приклади

Оригінальний текст
https://example.com/search?q=你好世界&type=text
URL-кодований
https://example.com/search?q=%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C&type=text

Можливості

  • Два режими кодування: encodeURIComponent та encodeURI
  • Гнучке опрацювання пробілів: кодувати як + або %20
  • Конвертація в реальному часі зі статистикою довжини вхіду/виходу
  • Кнопки копіювання/очищення та двостороння функція надсилання до панелі
  • Повна підтримка інтернаціоналізації з багатотемою DaisyUI

Що таке кодування URL?

URL-кодування перетворює символи на послідовності у відсотковому кодуванні %XX для забезпечення безпечної передачі в URL.

encodeURIComponent підходить для окремих компонентів (наприклад, окремого значення параметра запиту) та кодує більшість неалфавітно-цифрових символів.

encodeURI призначений для повних рядків URI та зберігає зарезервовані символи зі структурним значенням, як-от ?, &, = та /.

Поширені випадки використання

  • Формування параметрів запиту (наприклад, пошукові ключові слова, умови фільтру)
  • Кодування та передавання даних форми через GET/POST
  • Кодування параметрів запитів до API
  • Безпечне вставлення користувацького вводу в сегменти шляху URL

Часті запити та поширені помилки

  • encodeURI проти encodeURIComponent: використовуйте кодування компонентів для окремих частин, а кодування URI для повних URL
  • Пробіли та +: у application/x-www-form-urlencoded пробіли часто позначаються як + в рядках запитів
  • Уникайте подвійного декодування: повторне декодування може пошкодити дані
  • Недійсні відсоткові послідовності викликають помилки; обробляйте винятки делікатно

Як виконати кодування/декодування URL у мовах програмування

JavaScript
Кодувати
// Component (recommended for query values)
const encoded = encodeURIComponent(text);
// If you need '+' for spaces in query strings
const encodedPlus = encoded.replace(/%20/g, '+');
// Full URI
const encodedUri = encodeURI(url);
Декодувати
// Treat '+' as space if needed
const input = plusAsSpace ? s.replace(/\+/g, ' ') : s;
// Component
const dec1 = decodeURIComponent(input);
// Fallback to decodeURI when input is a full URL
const dec2 = decodeURI(input);
PHP
Кодувати
// Component (RFC 3986)
$encoded = rawurlencode($text);
// '+' for spaces (application/x-www-form-urlencoded)
$encodedPlus = str_replace('%20', '+', $encoded);
// Full query usage
$query = http_build_query(['q' => '你好 世界', 'type' => 'text']);
Декодувати
// Component
$decoded = rawurldecode($s);
// If input uses '+' for spaces
$decodedPlus = urldecode($s);
Python
Кодувати
from urllib.parse import quote, quote_plus

# Component (RFC 3986)
enc = quote(text, safe='')
# '+' for spaces (application/x-www-form-urlencoded)
enc_plus = quote_plus(text)
Декодувати
from urllib.parse import unquote, unquote_plus

# Component
dec = unquote(s)
# Input with '+' for spaces
dec_plus = unquote_plus(s)
Go
Кодувати
import (
    "net/url"
)

// Query component
enc := url.QueryEscape(text) // spaces => +
// Path segment
// go1.8+
// url.PathEscape(text)
Декодувати
import (
    "net/url"
)

// Query component
dec, _ := url.QueryUnescape(s)
// Path segment
// url.PathUnescape(s)
Rust
Кодувати
// Cargo.toml: urlencoding = "^2"
use urlencoding::{encode, encode_binary};

let enc = encode(text);              // component; spaces => %20
let enc_plus = enc.replace("%20", "+"); // if you need '+' for spaces
Декодувати
use urlencoding::decode;

// decode treats '+' as space
let dec = decode(s)?; // Result, _>
Java
Кодувати
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

// Query param / form style (spaces => '+')
String enc = URLEncoder.encode(text, StandardCharsets.UTF_8);
// For RFC3986-like component encoding, replace '+' with %20 if needed
String encSpace = enc.replace("+", "%20");
Декодувати
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

// URLDecoder treats '+' as space
String dec = URLDecoder.decode(s, StandardCharsets.UTF_8);