URL — kodowanie / dekodowanie
Koduj procentowo lub dekoduj składniki adresu URL i ciągi zapytań
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.