Dekoder URL

5 z 2 ocen
Dekoder URL

Dekoder URL to bezpłatne narzędzie, które przekształca tekst URL zapisany z użyciem kodowania procentowego z powrotem do jego pierwotnej postaci.

Na czym polega dekodowanie URL?

Dekodowanie URL cofa kodowanie stosowane do przesyłania spacji, znaków interpunkcyjnych i innych bajtów w adresach URL oraz innych zdefiniowanych składniach wykorzystujących kodowanie procentowe. W tym zapisie bajt jest przedstawiany jako znak procentu, po którym następują dwie cyfry szesnastkowe. Kodowanie URL używane w formularzach zapisuje również spację jako +. Na przykład spację można zapisać jako %20, a znak ampersand jako %26.

Oto prosty przykład przed dekodowaniem i po nim:

Zakodowane dane wejściowe: red%20%26%20blue

Wynik po dekodowaniu: red & blue

To kodowanie jest potrzebne, ponieważ niektóre znaki pełnią w adresie URL funkcje strukturalne. Znak zapytania wyznacza początek parametrów zapytania, natomiast w danych zapytania pochodzących z formularza dosłowny ampersand zwykle oddziela pola. Zakodowanie tych znaków pozwala aplikacji potraktować je jako dane.

Kodowanie URL nie jest szyfrowaniem i nie zapewnia poufności. Każdy, kto może odczytać zakodowaną wartość, może ją również zdekodować. Nie traktuj haseł, tokenów dostępu ani danych osobowych zapisanych z użyciem kodowania procentowego jako chronionych danych.

Schemat: tekst przechodzi przez narzędzie Dekoder URL w obu kierunkach

Jak używać Dekodera URL?

Wklej lub wpisz zakodowany tekst, uruchom przetwarzanie, a następnie odczytaj przywróconą wartość w polu wyniku Zdekodowany URL. Narzędzie korzysta z funkcji urldecode języka PHP, dlatego konwertuje prawidłowe sekwencje %HH i traktuje znak plus jako spację.

  1. Skopiuj zakodowany element, na przykład wartość parametru zapytania.
  2. Wprowadź wartość zakodowaną jako URL. Nie dodawaj cudzysłowów, chyba że faktycznie są częścią tej wartości.
  3. Przetwórz dane URL i sprawdź wynik w polu Zdekodowany URL.
  4. Jeśli wynik nadal zawiera sekwencje takie jak %2F lub %20, przed ponownym dekodowaniem sprawdź, czy dane źródłowe nie zostały zakodowane więcej niż raz.
Narzędzie Dekoder URL w serwisie digily.link wraz z formularzem wprowadzania danych

Przetwarzanie odbywa się na serwerze. Wprowadzone dane są przesyłane na serwer przez HTTPS i nie są przechowywane, ale podczas przetwarzania opuszczają Twoje urządzenie. Nie wklejaj poufnych informacji do tego Dekodera URL, jeśli przetwarzanie ich po stronie serwera nie jest odpowiednie.

Gdzie stosuje się kodowanie URL?

Z kodowaniem URL najczęściej spotkasz się w ciągach zapytań, danych przesyłanych z formularzy oraz wartościach osadzonych w linkach. Występuje ono także w kilku mniej oczywistych miejscach, w których dane muszą zostać przekazane za pomocą tekstowego formatu o ograniczonym zestawie znaków.

  • Ciągi zapytań: wyszukiwanie frazy "tea & cake" może zostać zapisane jako q=tea+%26+cake.
  • Identyfikatory URI typu data: dane tekstowe można zakodować procentowo po typie multimediów, choć innym często używanym sposobem zapisu jest Base64.
  • Linki e-mail: link mailto może zawierać zakodowane spacje, podziały wiersza i znaki interpunkcyjne w parametrach tematu lub treści. Kodowania transferowe MIME używane wewnątrz wiadomości e-mail są odrębnymi formatami.
  • Dane JSON: sam JSON ma własne reguły ucieczki znaków, ale ciąg znaków JSON może zawierać wcześniej zakodowany URL lub wartość zapytania, którą trzeba zdekodować osobno.
  • Domeny umiędzynarodowione: etykiety domen zawierające znaki spoza ASCII zwykle korzystają z Punycode, a nie z kodowania procentowego. Składniki ścieżki i zapytania mogą jednak zawierać bajty UTF-8 zapisane procentowo.

Jeśli zakodowany tekst jest etykietą domeny zaczynającą się od xn--, użyj narzędzia Konwerter IDN Punycode. Dekoder URL służy do przetwarzania składników URL zapisanych procentowo, a nie do konwersji Punycode.

Przykładowy wynik wygenerowany przez narzędzie Dekoder URL

Przykłady dekodowania URL

Poniższe przykłady pokazują typowe dane wejściowe i odpowiadający im tekst po zdekodowaniu.

  • hello%20world zmienia się w hello world.
  • name=Tom+Jones zmienia się w name=Tom Jones.
  • fish%26chips zmienia się w fish&chips.
  • %C2%A3 zmienia się w £, gdy bajty reprezentują tekst UTF-8.
  • %E6%9D%B1%E4%BA%AC zmienia się w 東京 po zinterpretowaniu jako UTF-8.
  • 100%25 zmienia się w 100%.

Zwykłe litery, cyfry i niezakodowane znaki interpunkcyjne zazwyczaj pozostają bez zmian. Puste dane wejściowe dają pusty wynik w polu Zdekodowany URL. Bardzo długie dane podlegają tym samym regułom dekodowania, choć przeglądarki, serwery i systemy odbierające mogą stosować własne limity długości żądań lub adresów URL.

Znaki diakrytyczne i znaki spoza alfabetu łacińskiego są zwykle kodowane jako sekwencja bajtów UTF-8, przy czym każdy bajt zapisuje się osobno. Jeśli system źródłowy używał innego kodowania znaków, zdekodowane bajty mogą być wyświetlane jako znaki zastępcze lub pozornie bezsensowny tekst.

Dlaczego dekodowanie URL nie działa albo daje niezrozumiały wynik?

Wynik dekodowania URL może pozostać bez zmian lub być inny niż oczekiwany, jeśli dane wejściowe zawierają niepełne sekwencje procentowe, zostały zakodowane więcej niż raz, są interpretowane przy użyciu niewłaściwego zestawu znaków albo w ogóle nie są danymi zakodowanymi jako URL. Funkcja urldecode języka PHP pozostawia nieprawidłowe sekwencje procentowe bez zmian, natomiast w przypadku danych zakodowanych dwukrotnie po jednym przebiegu zwraca wynik pośredni. Zanim zaczniesz wielokrotnie dekodować dane, sprawdź ich pierwotne źródło.

  • Dane zakodowane dwukrotnie: %2520 po jednym dekodowaniu zmienia się w %20, a dopiero po drugim przebiegu staje się spacją. Dekoduj ponownie tylko wtedy, gdy wiesz, że istnieje kolejna warstwa kodowania.
  • Niepełna sekwencja procentowa: każdy zakodowany bajt wymaga dwóch cyfr szesnastkowych. Końcowy % lub wartość taka jak %2 są nieprawidłowe i nie mogą reprezentować pełnego zakodowanego bajtu, dlatego funkcja urldecode języka PHP pozostawia je bez zmian.
  • Niewłaściwe kodowanie znaków: dekodowanie procentowe przywraca bajty. Na przykład interpretowanie bajtów ISO-8859-1 jako UTF-8 może dać niezrozumiały wynik, mimo że sekwencje procentowe były prawidłowe.
  • Dane binarne zamiast tekstu: zdekodowane bajty mogą reprezentować obraz, skompresowany plik lub inną zawartość binarną. Taki wynik nie powinien być czytelnym tekstem.
  • Niewłaściwy rodzaj kodowania: jeśli wynik dekodowania URL zostanie następnie przekazany do Dekodera Base64, dekodowanie może się nie udać z powodu użycia standardowego alfabetu zamiast wariantu bezpiecznego dla URL, braku dopełnienia = albo uszkodzonych danych wejściowych. Kodowanie procentowe URL nie ma dopełnienia i nie korzysta z alfabetu Base64, a dekodowanie URL nie sprawdza ani nie naprawia takich problemów z Base64.

Uważaj na dosłowne znaki plus. W kodowaniu URL używanym w formularzach + oznacza spację. Rzeczywisty znak plus powinien zwykle zostać zapisany jako %2B przed dekodowaniem.

Najczęściej zadawane pytania

Czy dekodować cały adres URL, czy tylko jego fragment?

Jeśli to możliwe, dekoduj pojedynczy segment ścieżki lub wartość parametru zapytania. Zdekodowanie całego adresu URL może przekształcić zakodowane znaki zastrzeżone, takie jak %26, %3F lub %2F, w separatory i zmienić sposób interpretowania adresu.

Czy dekoder URL obsługuje kody szesnastkowe zapisane małymi literami?

Tak. Wielkość liter w cyfrach szesnastkowych należących do sekwencji procentowych nie ma znaczenia, dlatego %2f i %2F reprezentują ten sam bajt. Sekwencje zawierające jednocześnie małe i wielkie litery również są prawidłowe.

Czy narzędzie dekoduje tę samą wartość wielokrotnie?

Nie. Jedno wywołanie funkcji urldecode wykonuje jeden przebieg dekodowania. Jeśli %252F zmieni się w %2F, do uzyskania ukośnika potrzebny będzie kolejny przebieg. Wielokrotne dekodowanie może jednak zmienić dane, które miały zawierać dosłowną sekwencję procentową.

Czy dekodowanie URL może naprawić uszkodzony tekst?

Nie. Może cofnąć prawidłowe kodowanie procentowe, ale nie odtworzy brakujących cyfr szesnastkowych ani nie określi z całkowitą pewnością pierwotnego zestawu znaków. Jeśli zdekodowane bajty nie wyświetlają się prawidłowo, sprawdź system źródłowy, nagłówki HTTP lub dokumentację.

Co zrobić z wartością zaczynającą się od xn--?

Traktuj ją jako etykietę domeny zapisaną w Punycode, a nie jako zwykły tekst zakodowany procentowo. Użyj narzędzia Konwerter IDN Punycode, a następnie dokładnie sprawdź otrzymaną domenę, ponieważ podobnie wyglądające znaki Unicode mogą należeć do różnych systemów pisma.

Podobne narzędzia

Koder URL

Zakoduj dowolny ciąg znaków w formacie URL za pomocą naszego narzędzia do kodowania URL, aby uzyskać bezpieczne adresy internetowe.

4,796
40

Popularne narzędzia