onlinetools.dev

URL — kodowanie / dekodowanie

Koduj procentowo lub dekoduj składniki adresu URL i ciągi zapytań

Działa lokalnie
loading…
O tym narzędziu

Znaki takie jak spacje, ampersandy czy litery spoza ASCII nie mogą wystąpić w adresie URL w surowej postaci, więc koduje się je procentowo: spacja staje się %20, a 你 zamienia się w %E4%BD%A0. To narzędzie koduje tekst tak, by bezpiecznie trafił do URL-a, i dekoduje ciągi z sekwencjami procentowymi z powrotem na czytelny tekst — łącznie z konwencją + oznaczającą spację w ciągach zapytań.

Dostępne są dwa tryby kodowania, bo sam JavaScript ma dwa: tryb komponentu (encodeURIComponent) escapuje wszystko, co mogłoby rozdzielić URL-a, czego chcesz dla pojedynczej wartości w query stringu; tryb pełnego URI (encodeURI) zachowuje znaki strukturalne takie jak /, ? i &, gdy kodujesz cały adres, który ma pozostać klikalny.

Dekodowanie jest surowe wobec uszkodzonych sekwencji % — samotny % albo %ZZ zgłaszany jest jako błąd zamiast być po cichu przepuszczonym, czyli dokładnie tak, jak potraktują go przeglądarki i serwery.

Często zadawane pytania

Kiedy używać trybu komponentu, a kiedy pełnego URI?
Kodujesz wartość, która trafi do wnętrza URL-a (zapytanie wyszukiwania, adres przekierowania, e-mail w parametrze) → tryb komponentu, żeby & i = wewnątrz wartości nie rozbiły ciągu zapytania. Kodujesz kompletny adres do wyświetlenia lub przesłania → tryb pełnego URI, żeby struktura adresu przetrwała.
Dlaczego + czasem oznacza spację?
Format application/x-www-form-urlencoded — używany przy wysyłce formularzy HTML i w ciągach zapytań — historycznie koduje spacje jako +. W ścieżkach URL + to po prostu plus. Tutejszy dekoder traktuje + jak spację, zgodnie z semantyką query stringów; %20 działa zawsze i wszędzie.
Dlaczego mój ciąg jest zakodowany podwójnie (%2520)?
%25 to zakodowany znak %, więc %2520 znaczy, że tekst %20 zakodowano po raz drugi. Dzieje się tak, gdy dwie warstwy systemu kodują niezależnie od siebie. Uruchom tu dekodowanie dwa razy, żeby to rozwinąć, a potem napraw warstwę, która kodować nie powinna.
Czy znaki Unicode są obsługiwane poprawnie?
Tak — tekst jest najpierw kodowany do UTF-8, a następnie każdy bajt escapowany procentowo, zgodnie ze standardem URL organizacji WHATWG. Dlatego jeden znak CJK zamienia się w trzy grupy %XX.
Powiązane narzędzia