Budowanie wartości query stringa
Każde dane wejściowe użytkownika, które wstawiasz do ?q=..., muszą być zakodowane w trybie Komponent. Tryb URI pozostawiłby = i & w surowej formie, łamiąc Twój URL, gdy wartość je zawiera.
Zakoduj dowolny tekst do bezpiecznego dla URL ciągu w percent-encoding lub zdekoduj zakodowany URL do zwykłego tekstu. Podgląd na żywo, bezpieczne UTF-8, działa w całości w Twojej przeglądarce.
Komponent (encodeURIComponent) escape'uje wszystko, co nie jest znakiem niezarezerwowanym — najbezpieczniejszy dla wartości query stringa, segmentów ścieżki czy pojedynczych pól. URI (encodeURI) zachowuje znaki struktury URL (:/?#=&) — używaj go dla całego URL-a. Formularz (application/x-www-form-urlencoded) to Komponent + spacje zamieniane na „+” — tak działają formularze HTML.
RFC 3986 definiuje zbiór znaków „niezarezerwowanych”, które nie wymagają kodowania: A-Z a-z 0-9 - _. ~. Wszystko inne jest poddawane percent-encoding. encodeURIComponent dodatkowo koduje :/?#&=, których encodeURI nie rusza. Różnica ma znaczenie, gdy kodujesz wartość query w porównaniu z całym URL-em.
Upuść plik tekstowy tutaj lub kliknij, aby wybrać
Dowolny plik tekstowy UTF-8:.txt,.csv,.json,.url,.log
Szybki, dokładny, działa wyłącznie w przeglądarce — stworzony dla programistów, copywriterów i każdego, kto debuguje URL.
Wybierz tryb Komponent, Pełny URI lub Formularz w zależności od tego, co kodujesz — wartości query stringa, cały URL czy ładunek formularza HTML.
Każde kodowanie i dekodowanie odbywa się w Twojej przeglądarce za pomocą natywnego JavaScript. Tekst i adresy URL nigdy nie opuszczają Twojego urządzenia.
Wynik aktualizuje się przy każdym naciśnięciu klawisza — żadnego przycisku „Koduj”, żadnego zapytania do serwera.
Emoji, znaki CJK, łacińskie z akcentami i cyrylica poprawnie przechodzą tam i z powrotem przez encodeURIComponent.
Przy dekodowaniu opcjonalnie traktuj „+” jako spację — to konwencja używana w formularzach HTML w application/x-www-form-urlencoded.
Upuść plik.txt,.csv lub.json, aby zakodować lub zdekodować go w jednym kroku. Wynik pobierzesz jako czysty plik.txt.
Trzy natywne API przeglądarki, trzy tryby — wszystko działa na stronie, którą właśnie czytasz.
Przy każdym naciśnięciu klawisza ciąg wejściowy jest przekazywany do małej funkcji JavaScript. Bez debounce'u, bez wywołań API, bez fetch — funkcja działa synchronicznie w karcie Twojej przeglądarki.
Komponent wywołuje encodeURIComponent — escape'uje wszystko, co nie jest A-Z a-z 0-9 - _. ~. URI wywołuje encodeURI — zachowuje :/?#=&, dzięki czemu pełny URL pozostaje prawidłowy. Formularz używa encodeURIComponent i zamienia spację na + zgodnie z application/x-www-form-urlencoded.
Zarówno encodeURIComponent, jak i encodeURI wewnętrznie konwertują ciąg na bajty UTF-8 przed percent-encoding każdego niebezpiecznego bajtu. Dlatego chińskie 中 to %E4%B8%AD — dokładnie tak, jak wymaga RFC 3986.
Wynik jest ustawiany jako wartość pola wyjściowego tylko do odczytu. Kliknij Kopiuj, aby umieścić go w schowku przez navigator.clipboard.writeText, lub Pobierz, aby zapisać go jako .txt przez Blob URL — oba pozostają w Twojej przeglądarce.
Realne sytuacje, w których właściwy tryb kodowania zapobiega błędom.
Każde dane wejściowe użytkownika, które wstawiasz do ?q=..., muszą być zakodowane w trybie Komponent. Tryb URI pozostawiłby = i & w surowej formie, łamiąc Twój URL, gdy wartość je zawiera.
Niektóre komunikatory i pliki PDF psują linki, gdy zawierają surowe spacje lub znaki spoza ASCII. Przepuść URL przez tryb URI, aby był bezpieczny przy kopiowaniu i wklejaniu wszędzie.
Gdy Twoje API odrzuca żądanie, wklej URL w trybie Dekoduj, aby zobaczyć, co serwer rzeczywiście otrzymał. Podwójnie zakodowane wartości (gdzie samo % zostało zakodowane jako %25) ujawniają się natychmiast.
Przy debugowaniu treści POST w application/x-www-form-urlencoded dekoduj z włączoną opcją „+ jako spacja”. To konwencja używana przez przeglądarki, a jej pominięcie to przyczyna numer 1 błędów typu „dlaczego moja nazwa użytkownika ma plusy zamiast spacji”.
URL-e, które kodujesz, często zawierają prawdziwe e-maile klientów, identyfikatory lub tokeny sesji — dokładnie te dane, których nie chcesz wklejać do narzędzia na czyimś serwerze. iKit URL Encoder działa jako JavaScript już załadowany w Twojej przeglądarce, więc dane wejściowe nigdy nie opuszczają karty.
fetch, XHR ani beacon podczas kodowania lub dekodowania.
Szczegółowe poradniki i porównania narzędzi z bloga iKit.
The 30-year-old form-encoding quirk explained — when + means space, when it means literal +, and how to fix the email-with-plus bug.
When to reach for Base64 versus URL percent-encoding, and what each encoding actually solves.
Pretty-print, validate, and structurally diff messy JSON in any browser.
Komponent (encodeURIComponent) escape'uje wszystko, co nie jest znakiem niezarezerwowanym — najbezpieczniejszy dla wartości query stringa, segmentów ścieżki czy pojedynczych pól. URI (encodeURI) zachowuje znaki struktury URL (:/?#=&) — używaj go dla całego URL-a. Formularz (application/x-www-form-urlencoded) to Komponent + spacje zamieniane na „+” — tak działają formularze HTML.
RFC 3986 definiuje zbiór znaków „niezarezerwowanych”, które nie wymagają kodowania: A-Z a-z 0-9 - _. ~. Wszystko inne jest poddawane percent-encoding. encodeURIComponent dodatkowo koduje :/?#&=, których encodeURI nie rusza. Różnica ma znaczenie, gdy kodujesz wartość query w porównaniu z całym URL-em.
Trzy częste przyczyny: (1) oryginał był zakodowany jako Formularz, więc „+” powinno być traktowane jako spacja — włącz tę opcję. (2) Podwójne kodowanie — wejście zostało zakodowane dwa razy; zdekoduj ponownie. (3) Nieprawidłowa sekwencja procentowa — pojedyncze % bez dwóch cyfr szesnastkowych. Sprawdź komunikat o błędzie, aby zobaczyć dokładną pozycję bajtu.
Tak dla trybu Komponent — wywołujemy encodeURIComponent bezpośrednio. Tryb Formularz dodaje standardowe poprawki kodowania formularza (! ' * stają się %21 %27 %28 %29 %2A) zgodnie z RFC 3986 + WHATWG. Tryb URI wywołuje encodeURI, czyli to, co większość języków rozumie pod pojęciem „percent-encode adresu URL”.
Nie. Całe narzędzie to JavaScript wewnątrz tej strony — kodowanie i dekodowanie odbywają się w Twojej przeglądarce. Możesz to zweryfikować otwierając DevTools → Network i obserwując: podczas operacji kodowania ani dekodowania nie są wysyłane żadne żądania.