Koder i dekoder URL

Koduj procentowo tekst do URL-i i query stringów, dekoduj zakodowane adresy i rozkładaj dowolny URL na części ze zdekodowanymi parametrami zapytania.

Działa w przeglądarceBez rejestracjiNic nie jest wysyłane

Zakodowane

Jak używać: Kodowanie / dekodowanie URL

  1. Wybierz Koduj lub Dekoduj.
  2. Przy kodowaniu wybierz Komponent dla pojedynczej wartości parametru lub segmentu ścieżki, Pełny URL, aby zachować strukturę adresu, lub Dane formularza dla application/x-www-form-urlencoded.
  3. Wklej tekst. Wynik pojawia się natychmiast; błędne sekwencje są raportowane z ich pozycją.
  4. Wklej pełny URL do parsera URL, aby zobaczyć jego host, ścieżkę, fragment i każdy parametr zapytania po zdekodowaniu.

Czym jest kodowanie URL?

URL-e mogą zawierać tylko ograniczony zestaw znaków ASCII (RFC 3986). Wszystko inne, w tym spacje, litery spoza alfabetu angielskiego i znaki o specjalnym znaczeniu, jak &, ? i #, zapisuje się jako znak procentu i dwie cyfry szesnastkowe dla każdego bajtu UTF-8. Spacja staje się %20, a é – %C3%A9.

encodeURIComponent a encodeURI

FunkcjaPozostawia bez zmianZastosowanie
encodeURIComponentA-Z a-z 0-9 - _ . ~Pojedyncza wartość parametru, segment ścieżki lub nazwa parametru
encodeURITakże : / ? # [ ] @ ! $ & ' ( ) * + , ; =Cały URL, którego struktura musi przetrwać

Użycie encodeURI dla wartości parametru to klasyczny błąd: & wewnątrz wartości nie zostaje zakodowany, więc dzieli parametr na dwa. Tryb Komponent w tym narzędziu koduje też ! ' ( ) * dla ścisłej zgodności z RFC 3986.

%20 czy + dla spacji?

W ścieżkach spacja musi być zapisana jako %20. W formularzach HTML (application/x-www-form-urlencoded) i wielu query stringach spację zapisuje się jako +. Przy dekodowaniu włącz Traktuj + jako spację dla danych formularzy, a wyłącz, gdy liczy się dosłowny znak plus, np. w jane+test@example.com.

Najczęściej zadawane pytania

Dlaczego przy dekodowaniu pojawia się „Błędna sekwencja”?
Po % muszą następować dokładnie dwie cyfry szesnastkowe. Dosłowny znak procentu, jak w „50% taniej”, powinien być zakodowany jako %25. Błąd pokazuje pozycję nieprawidłowej sekwencji.
Co oznacza „Nieprawidłowa sekwencja bajtów UTF-8”?
Bajty nie zostały zakodowane jako UTF-8, często dlatego, że tekst wygenerował starszy system używający Latin-1 (np. %E9 dla é zamiast %C3%A9), albo ciąg został ucięty w połowie znaku.
Kodować cały URL czy tylko parametry?
Koduj każdą nazwę i wartość parametru osobno w trybie komponentu, a następnie połącz je znakami = i &. Zakodowanie całego URL-a w trybie komponentu zakodowałoby także :// i zepsuło adres.
Czy podwójne kodowanie to problem?
Tak. Zakodowanie już zakodowanego ciągu zamienia %20 w %2520. Jeśli widzisz %25, po którym następują cyfry szesnastkowe, wartość została prawdopodobnie zakodowana dwukrotnie. Zdekoduj ją dwa razy, aby odzyskać oryginał.

Powiązane narzędzia