Jak zdekodować ciąg zakodowany dla URL
Dekodowanie odwraca kodowanie procentowe: każda sekwencja %XX staje się bajtem, a bajty są odczytywane jako tekst UTF-8. Tryb Komponent używa decodeURIComponent(), więc wynik jest dokładnie pierwotną wartością.
Przykład krok po kroku
Wielobajtowe sekwencje UTF-8 stają się pojedynczym znakiem.
- Dane wejściowe
- caf%C3%A9%20%26%20cr%C3%A8me
- Wynik ·
decodeURIComponent() - café & crème
%20 staje się spacją, ale + pozostaje zwykłym znakiem plus.
- Dane wejściowe
- a+b%20c
- Wynik ·
decodeURIComponent() - a+b c
W ostatniej sekwencji brakuje cyfry szesnastkowej, więc narzędzie wyświetla błąd.
- Dane wejściowe
- %E0%A4%A
- Wynik ·
decodeURIComponent() - Nieprawidłowy zakodowany URL
Po uzupełnieniu brakującej cyfry trzy bajty dają jedną literę dewanagari.
- Dane wejściowe
- %E0%A4%A4
- Wynik ·
decodeURIComponent() - त
Jak działa narzędzie
- Każda sekwencja %XX to jeden bajt, a kolejne bajty są dekodowane razem jako UTF-8, więc %C3%A9 zamienia się w é.
- Znak plus nie jest traktowany jak spacja: + pozostaje +. Jeśli tekst pochodzi z formularza HTML, przed dekodowaniem zamień + na %20.
- Jeśli którakolwiek sekwencja jest niepełna lub nie jest poprawnym UTF-8, całe dane wejściowe są odrzucane z błędem; nic nie jest dekodowane częściowo.
- Tryb Pełny URL (decodeURI) pozostawia zakodowane sekwencje znaków zarezerwowanych, takie jak %26, %2F i %3F, aby nie zmieniać struktury adresu URL.