Koder URL

Zamień tekst tak, by był bezpieczny w adresie URL.

Działa w przeglądarce. Nic, co wpiszesz, nie jest nigdzie wysyłane.

Jak zakodować tekst do URL

  1. Wklej tekst albo adres URL.
  2. Wybierz kodowanie komponentu dla pojedynczej wartości, albo pełnego URI dla całego adresu.
  3. Skopiuj zakodowany wynik.

Co jest kodowane

ZnakiKodowane?Przykład
Litery i cyfryNiea-z, A-Z, 0-9 zostają bez zmian
- _ . ~NieBez zmian w obu trybach
SpacjaTak%20, albo + przy włączonej opcji
/ ? # & =Tylko w trybie komponentuTryb pełnego URI zostawia je bez zmian

Tryb komponentu kontra tryb pełnego URI

TrybKoduje / ? # & =Do użycia dla
KomponentTakJednej wartości zapytania albo segmentu ścieżki
Pełny URINieCałego adresu, którego chcesz użyć bez zmian

Kiedy potrzebne jest kodowanie procentowe

  • Wartość parametru zapytania zawierająca spacje albo znaki specjalne, na przykład fraza wyszukiwania.
  • Tekst spoza ASCII w adresie URL, na przykład litery z akcentem albo inny alfabet, po zamianie na bajty UTF-8.
  • Budowanie linku przekierowania albo callback, który przenosi inny pełny adres URL wewnątrz jednego parametru.

Kodowanie URL: najczęstsze pytania

Jaka jest różnica między kodowaniem komponentu a pełnego URI?

Kodowanie komponentu ucieka każdy znak specjalny, w tym / i &, do użycia wewnątrz jednego parametru zapytania. Kodowanie pełnego URI zostawia znaki struktury adresu, takie jak :, / i ?, bez zmian, bo są częścią poprawnego adresu.

Kiedy używać plus zamiast spacji?

Tylko przy klasycznych wysyłkach formularzy (application/x-www-form-urlencoded), gdzie spacja zapisywana jest jako + zamiast %20.

Które znaki są kodowane?

Litery, cyfry oraz - _ . ~ zostają bez zmian. Wszystko inne zamienia się w znak procentu, po którym następuje dwucyfrowy kod hex.

Czy to działa zgodnie ze standardem sieciowym?

Tak. RFC 3986 definiuje, które znaki URI są zastrzeżone i jak zakodować procentowo resztę. To narzędzie używa wbudowanych funkcji JavaScriptu encodeURIComponent i encodeURI, które obie są z nim zgodne.

Jak kodowane są litery z akcentem albo emoji?

Najpierw są zamieniane na bajty UTF-8, a potem każdy bajt zapisywany jest jako %XX. Litera é (z akcentem) staje się %C3%A9, bo zajmuje dwa bajty UTF-8.

Czy mogę zakodować cały adres, razem z https://?

Użyj trybu pełnego URI. Zostawia bez zmian schemat, host i / oddzielające segmenty ścieżki, a koduje tylko znaki, które nigdzie w adresie URL nie są bezpieczne.

Czy kodowanie zmienia litery i cyfry?

Nie. A-Z, a-z i 0-9 nigdy nie są kodowane w żadnym z trybów, bo zawsze są bezpieczne do użycia bezpośrednio w adresie URL.

Jaka jest różnica między dwiema funkcjami JavaScriptu stojącymi za tym narzędziem?

Tryb komponentu używa encodeURIComponent, które ucieka wszystko poza znakami niezastrzeżonymi, myślane dla jednej wartości, na przykład parametru zapytania. Tryb pełnego URI używa encodeURI, które dodatkowo zostawia bez zmian zastrzeżone znaki struktury adresu, bo zakłada kompletny adres.

Podobne narzędzia