Jak zakodować tekst do adresu URL?
- 1.
Wybierz tryb
„Koduj składnik” dla wartości parametru (np. frazy wyszukiwania), „Koduj cały URL” dla pełnego adresu, „Dekoduj” do odczytania sekwencji %XX.
- 2.
Wklej tekst
Wynik pojawia się na bieżąco. Opcja „Spacja jako +” odpowiada kodowaniu formularzy HTML.
- 3.
Przeanalizuj link
W sekcji „Parser adresu URL” wklej link, aby zobaczyć jego części i zdekodowane parametry w tabeli.
Na czym polega kodowanie URL (percent-encoding)?
Adres URL może zawierać tylko ograniczony zestaw znaków ASCII (RFC 3986). Pozostałe znaki zamienia się na bajty UTF-8, a każdy bajt zapisuje jako % i dwie cyfry szesnastkowe. Polskie litery zajmują po 2 bajty:
| Znak | Zakodowany |
|---|---|
| spacja | %20 (lub + w formularzach) |
| ą | %C4%85 |
| ł | %C5%82 |
| ż | %C5%BC |
| & | %26 |
| / | %2F |
| ? | %3F |
| # | %23 |
Przykład: fraza „buty zimowe & śniegowce” jako wartość parametru to buty%20zimowe%20%26%20%C5%9Bniegowce.
encodeURIComponent czy encodeURI?
- encodeURIComponent koduje wszystko poza
A-Z a-z 0-9 - _ . ! ~ * ' ( ). Używaj go do pojedynczych wartości - parametrów zapytania, fragmentów ścieżki. Dzięki temu znak&w wartości nie rozbije adresu na dwa parametry. - encodeURI dodatkowo zostawia znaki struktury adresu
; , / ? : @ & = + $ #. Służy do zakodowania całego, gotowego adresu, w którym są np. spacje lub polskie litery.
Najczęstszy błąd to użycie encodeURI do wartości parametru: ?q= + encodeURI("a&b") daje ?q=a&b, czyli dwa parametry zamiast jednego.
Budowa adresu URL
https://jan:haslo@sklep.example.pl:8080/buty/zimowe?kolor=czarny&rozmiar=42#opinie
- protokół:
https: - dane logowania:
jan:haslo(przestarzałe, przeglądarki ostrzegają) - host:
sklep.example.pl, port:8080(domyślnie 443 dla https, 80 dla http) - ścieżka:
/buty/zimowe - query string:
?kolor=czarny&rozmiar=42- pary klucz=wartość rozdzielone& - fragment:
#opinie- nie jest wysyłany do serwera
Domeny z polskimi znakami (np. żółw.pl) są zapisywane w systemie Punycode (xn--…) - parser pokazuje tę postać.
Typowe problemy z kodowaniem adresów
- Podwójne kodowanie - zakodowanie już zakodowanego tekstu zamienia
%na%25, np.%C4%85→%25C4%2585. Jeśli w adresie widzisz%25, najpierw zdekoduj tekst. - Spacja jako + lub %20 - formularze HTML (
application/x-www-form-urlencoded) używają+, a ścieżki URL -%20. Plus w ścieżce oznacza dosłowny znak „+”. - Kodowanie inne niż UTF-8 - stare systemy zapisywały „ą” jako
%B1(ISO-8859-2) lub%B9(Windows-1250). Takiej sekwencji nie da się zdekodować jako UTF-8 - narzędzie zgłosi błąd. - Polskie znaki w adresach stron - w adresach podstron lepiej ich w ogóle unikać; przyjazny adres bez ogonków utworzysz w generatorze slugów.
Najczęściej zadawane pytania
Dlaczego w linku pojawia się %20?
+
Jak odczytać link z dziwnymi znakami typu %C5%BC?
+
Kiedy plus oznacza spację?
+
Skąd błąd „niepoprawna sekwencja procentowa”?
+
Czy narzędzie wysyła adresy na serwer?
+
Aktualizacja: