Konwertery

Kodowanie URL: koder i dekoder adresów (percent-encoding)

Zakoduj tekst do bezpiecznej postaci w adresie URL (np. spacja jako %20, ą jako %C4%85) albo zdekoduj zakodowany adres i rozłóż go na części oraz parametry.

Obliczenia wykonuje Twoja przeglądarka. Wpisane dane nie są wysyłane na serwer.

Rozkład adresu URL

Parametry zapytania (po zdekodowaniu)

NazwaWartość

Na czym polega kodowanie procentowe

RFC 3986 dzieli znaki w adresie URI na niezarezerwowane i zarezerwowane. Niezarezerwowane, czyli litery A–Z i a–z, cyfry oraz znaki - . _ ~, mogą stać w adresie bez zmian. Zarezerwowane pełnią rolę separatorów: : / ? # [ ] @ oraz ! $ & ' ( ) * + , ; =. Gdy taki znak ma być częścią danych, a nie separatorem, zapisuje się go jako % i dwie cyfry szesnastkowe kodu bajtu, np. spacja to %20.

Znaki spoza ASCII, w tym polskie litery, RFC 3986 każe najpierw zamienić na bajty UTF-8 i dopiero te bajty zakodować procentowo. Litera ą zajmuje w UTF-8 dwa bajty, więc daje %C4%85.

Trzy tryby kodowania

  • Wartość parametru działa jak encodeURIComponent w JavaScripcie. Według MDN zostawia bez zmian tylko A–Z a–z 0–9 - _ . ! ~ * ' ( ), a koduje także znaki składni adresu, np. & i =. To właściwy tryb dla wartości doklejanych do adresu.
  • Cały adres działa jak encodeURI: koduje polskie znaki i spacje, ale zostawia separatory, więc adres zachowuje swoją strukturę.
  • Formularz to format application/x-www-form-urlencoded, w którym według standardu WHATWG URL spacja staje się znakiem +.
ZnakWartość parametruFormularz
spacja%20+
ą%C4%85%C4%85
ł%C5%82%C5%82
&%26%26
=%3D%3D
?%3F%3F
/%2F%2F
#%23%23
+%2B%2B
%%25%25
€%E2%82%AC%E2%82%AC

Części adresu URL

RFC 3986 dzieli adres na schemat, część wskazującą serwer (authority), ścieżkę, zapytanie i fragment, np. foo://example.com:8042/over/there?name=ferret#nose. Sekcja „Rozkład adresu” korzysta z wbudowanego w przeglądarkę parsera URL i pokazuje te części oraz zdekodowane parametry zapytania. Parametry o tej samej nazwie pokazuje osobno, w kolejności występowania.

Najczęstsze pytania

Dlaczego spacja to raz %20, a raz +?

Kodowanie procentowe z RFC 3986 zapisuje spację jako %20. Format application/x-www-form-urlencoded, używany przez formularze HTML, zapisuje ją jako + według standardu WHATWG URL. Dlatego dekoder ma opcję traktowania + jako spacji.

Jak zakodować polskie znaki w adresie URL?

Według RFC 3986 tekst najpierw zamienia się na bajty UTF-8, a potem każdy bajt spoza znaków niezarezerwowanych zapisuje jako %XX. Litera ą to w UTF-8 dwa bajty, więc daje %C4%85.

Czym różni się encodeURIComponent od encodeURI?

encodeURIComponent koduje także znaki składni adresu, takie jak & = ? / :, więc nadaje się do wartości parametrów. encodeURI zostawia je bez zmian, żeby nie zepsuć struktury całego adresu.

Źródła

  1. RFC 3986: Uniform Resource Identifier (URI): Generic Syntax, IETF (2005)
  2. URL Standard: application/x-www-form-urlencoded, WHATWG
  3. encodeURIComponent(), MDN
  • Konwertery

    Base64

    Zakoduj tekst lub plik w Base64 albo zdekoduj Base64 z powrotem, z obsługą polskich znaków (UTF-8), wariantu base64url i adresów data:.

  • Konwertery

    Timestamp Unix

    Zamień znacznik czasu Unix (sekundy, milisekundy, mikro- lub nanosekundy) na datę w dowolnej strefie czasowej albo datę na znacznik czasu.

  • Konwertery

    Systemy liczbowe

    Wpisz liczbę w dowolnym z czterech systemów, a konwerter pokaże ją w pozostałych, także dla bardzo dużych liczb i w kodzie uzupełnień do dwóch dla 8–64 bitów.

  • Konwertery

    Tester regex

    Sprawdź wyrażenie regularne na własnym tekście: podświetlone dopasowania, grupy i grupy nazwane, podmiana z $1 i ochrona przed zawieszeniem przy wolnych wzorcach.

Niezbędne (zawsze włączone). Pamięć przeglądarki przechowuje wybrany motyw, polubione artykuły i Twoją decyzję o zgodzie. Nie używamy do tego plików cookies.