URL kódolás és dekódolás

URL sztringek kódolása és dekódolása a speciális karakterek és nem ASCII szövegek biztonságos kezelése érdekében, ideális lekérdezési paraméterek és útvonalak átvitelére.

Kódolás

Kódolási mód

Dekódolás

Használati útmutató

Az URL kódolás a speciális vagy nem ASCII karaktereket %XX formátumba alakítja az URL-ekben való biztonságos átvitel érdekében.
Használja a „Kódolás” funkciót, hogy a szöveget URL-biztonságos formátummá alakítsa (pl. lekérdezési paraméterekhez).
Használja a „Dekódolás” funkciót, hogy a %XX sorozatokat visszaállítsák eredeti karaktereikké.
Gyakori forgatókönyvek: lekérdezési paraméterek kezelése, űrlapadatok átvitele, API-hívások stb.

Gyors példák

Eredeti szöveg
https://example.com/search?q=你好世界&type=text
URL-kódolt
https://example.com/search?q=%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C&type=text

Funkciók

  • Két kódolási mód: encodeURIComponent és encodeURI
  • Rugalmas szóközkezelés: kódolás + vagy %20 formátumba
  • Valós idejű átalakítás bemeneti/kimeneti hosszlapú statisztikával
  • Másolás/törlés gombok és kétirányú küldés a panelre funkció
  • Teljes nemzetköziesítési támogatás DaisyUI több témával

Mi az URL kódolás?

Az URL-kódolás a karaktereket % százalék-kódolt sorozatokká alakítja, hogy biztosítsa a biztonságos átvitelt az URL-ekben.

Az encodeURIComponent alkalmas egyedi komponensekhez (pl. egy lekérdezési paraméter értéke) és a legtöbb nem alfanumerikus karaktert kódolja.

Az encodeURI teljes URI karakterláncokhoz készült és megőrzi a strukturális jelentésű fenntartott karaktereket, mint például: ?, &, = és /.

Gyakori használati esetek

  • Lekérdezési paraméterek létrehozása (pl. keresési kulcsszavak, szűrési feltételek)
  • Űrlapadatok kódolása és továbbítása GET/POST segítségével
  • API kérés paraméterek kódolása
  • Felhasználói bemenetek biztonságos beszúrása az URL útvonal szegmenseibe

GYIK és buktatók

  • encodeURI vs encodeURIComponent: Komponens-kódolást használj egyedi részekhez, URI-kódolást pedig teljes URL-ekhez
  • Szóközök és +: Az application/x-www-form-urlencoded formátumban a szóközöket gyakran + karakterként jelölik a lekérdezési karakterláncokban
  • Kerüld a kettős dekódolást: Az ismételt dekódolás sértheti az adatokat
  • Érvénytelen százalékos sorozatok hibát dobnak; kezeld az kivételeket finoman

URL kódolás és dekódolás végrehajtása programozási nyelvekben

JavaScript
Kódolás
// 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);
Dekódolás
// 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
Kódolás
// 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']);
Dekódolás
// Component
$decoded = rawurldecode($s);
// If input uses '+' for spaces
$decodedPlus = urldecode($s);
Python
Kódolás
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)
Dekódolás
from urllib.parse import unquote, unquote_plus

# Component
dec = unquote(s)
# Input with '+' for spaces
dec_plus = unquote_plus(s)
Go
Kódolás
import (
    "net/url"
)

// Query component
enc := url.QueryEscape(text) // spaces => +
// Path segment
// go1.8+
// url.PathEscape(text)
Dekódolás
import (
    "net/url"
)

// Query component
dec, _ := url.QueryUnescape(s)
// Path segment
// url.PathUnescape(s)
Rust
Kódolás
// 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
Dekódolás
use urlencoding::decode;

// decode treats '+' as space
let dec = decode(s)?; // Result, _>
Java
Kódolás
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");
Dekódolás
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;

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