Koder URL
Zamień tekst tak, by był bezpieczny w adresie URL.
Działa w przeglądarce. Nic, co wpiszesz, nie jest nigdzie wysyłane.
- Tryb komponentu albo pełnego URI
- Opcja plus zamiast spacji
- Działa offline
Jak zakodować tekst do URL
- Wklej tekst albo adres URL.
- Wybierz kodowanie komponentu dla pojedynczej wartości, albo pełnego URI dla całego adresu.
- Skopiuj zakodowany wynik.
Co jest kodowane
| Znaki | Kodowane? | Przykład |
|---|---|---|
| Litery i cyfry | Nie | a-z, A-Z, 0-9 zostają bez zmian |
| - _ . ~ | Nie | Bez zmian w obu trybach |
| Spacja | Tak | %20, albo + przy włączonej opcji |
| / ? # & = | Tylko w trybie komponentu | Tryb pełnego URI zostawia je bez zmian |
Tryb komponentu kontra tryb pełnego URI
| Tryb | Koduje / ? # & = | Do użycia dla |
|---|---|---|
| Komponent | Tak | Jednej wartości zapytania albo segmentu ścieżki |
| Pełny URI | Nie | Cał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.