Jak Kodować i Dekodować URL-e: Kompletny Przewodnik
Szybka odpowiedź
Kodowanie URL konwertuje unsafe znaki na sekwencje %XX gdzie XX to hex wartość bajtu. Spacje stają się %20 (lub + w form data), chińskie znaki stają się multi-byte sekwencjami %XX. Użyj naszego darmowego URL Encoder i URL Decoder —całe przetwarzanie lokalnie.
Wstęp
Kodowanie URL, nazywane też percent-encoding, to mechanizm kodowania reserved i unsafe znaków w URL tak, aby URL mógł być bezpiecznie transmitowany przez internet. URLe mogą zawierać tylko ograniczony zestaw znaków ASCII; każdy inny znak (spacje, nie-ASCII litery, symbol) musi być percent-zakodowany jako sekwencja zaczynająca się od % po której następują dwie cyfry hex.
Krok po kroku
-
Zidentyfikuj, co wymaga kodowania
Znaki, które nie należą do zestawu niezarezerwowanego (A-Z, a-z, 0-9, -, ., _, ~) muszą być zakodowane procentowo. Obejmuje to spacje, separatory zapytań, takie jak = i &, ukośniki oraz wszystkie znaki spoza zestawu ASCII, takie jak chiński, arabski lub emoji.
-
Zakoduj URL lub ciąg zapytania
Wklej tekst do narzędzia kodera URL. Używa encodeURIComponent() do kodowania każdego zarezerwowanego znaku. Wynik pojawia się natychmiast w polu wyjściowym.
-
Skopiuj zakodowany wynik
Kliknij przycisk Kopiuj, aby skopiować ciąg zakodowany procentowo. Możesz teraz bezpiecznie osadzić go w parametrze zapytania URL, żądaniu API lub przesłaniu formularza.
-
Odkoduj zakodowany URL
Wklej zakodowany URL lub ciąg zapytania do narzędzia dekodera URL. Używa decodeURIComponent() do przywrócenia oryginalnych znaków. Sprawdź, czy zdekodowany wynik odpowiada Twoim oczekiwaniom.
-
Sprawdź przypadki Edge
Sprawdź, czy spacje są poprawnie dekodowane (%20 vs +), czy wielobajtowe sekwencje UTF-8 dekodują do właściwego znaku i czy już zakodowane ciągi znaków nie są podwójnie kodowane.
Przykłady
Zakoduj tekst spacją
Wejście: Hello World
Wyjście: Hello%20World
Zakoduj separator ścieżki
Wejście: a/b
Wyjście: a%2Fb
Zakoduj chińskie znaki (UTF-8)
Wejście: 你好
Wyjście: %E4%BD%A0%E5%A5%BD
Dekoduj zakodowany parametr zapytania
Wejście: key%3Dvalue%26foo%3Dbar
Wyjście: key=value&foo=bar
Typowe problemy
- Podwójne kodowanie: kodowanie już zakodowanego ciągu zamienia %20 w %2520. Przed ponownym kodowaniem zawsze sprawdź, czy dane wejściowe są już zakodowane.
- Mylenie encodeURI z encodeURIComponent: encodeURI zachowuje zastrzeżone znaki, takie jak /, ?, i nienaruszone dla pełnego URLs, podczas gdy encodeURIComponent koduje wszystko dla wartości parametrów zapytania.
- Obsługa spacji: %20 to forma zakodowana procentowo; + jest prawidłowe tylko w danych treści aplikacji/x-www-form-urlencoded, a nie w ścieżce URL lub ciągu zapytania zgodnie z RFC 3986.
- Starsze kodowanie inne niż UTF-8: nowoczesne przeglądarki kodują jako UTF-8, ale starsze systemy mogą używać GBK lub Latin-1, powodując powstawanie mojibake po dekodowaniu po drugiej stronie.
Porady
- Użyj encodeURIComponent() dla poszczególnych wartości parametrów zapytania i encodeURI() dla całych URLs, które są już poprawnie sformułowane.
- Tworząc ciągi zapytań, koduj wartość, ale nie separatory = i & — zakoduj każdą wartość osobno, a następnie połącz za pomocą &.
- Skorzystaj z naszych narzędzi kodera i dekodera URL, aby debugować wywołania API, które zwracają 400 błędów z powodu zniekształconych ciągów zapytań.
- Zawsze dekoduj po stronie serwera, używając tego samego kodowania znaków (UTF-8), aby uniknąć mojibake.