Kodowanie URL
Niektóre znaki nie mogą pojawić się w adresach URL (np. spacjach), inne mają specjalne znaczenia w URL. Musimy przekonwertować znaki specjalne, aby odpowiadały składni zdefiniowanej w specyfikacji W3 URI (RFC 3986). Oznacza to, że adresy URL muszą zawierać jedynie podzbiór specjalnego znaku ASCII: litery i cyfry, które znamy, a także niektóre zarezerwowane znaki używane jako znaki kontrolne w URL.
Przetwarzanie kodowania URL w JavaScript
W JavaScript zarówno wbudowane funkcje encodeURIComponent() i encodeURI() mogą być kodowane w URL, zastępując zarezerwowane znaki w URL znakami zakodowanymi w UTF-8.
Większość przeglądarek automatycznie koduje adresy URL, na przykład kodując space do 20%, ale zawsze zdarzają się pewne wyjątki. Na szczęście przeglądarki oferują wbudowane funkcje kodowania i dekodowania URL: encodeURI, encodeURIComponent oraz decodeURI, decodeURIComponent. Pytanie brzmi, jak wykorzystać te funkcje i jaka jest między nimi różnica.
encodeURI()
Kodowanie ciągu URL jest proste, wystarczy wywołać encodeURI i przesłać ciąg, który chcesz zakodować. Ta funkcja zwraca zakodowany adres URL.
decodeURI()
Funkcja ta dekoduje i wywołuje funkcję decodeURI, przekazując zakodowany ciąg znaków, a następnie zwraca zdekodowany ciąg normalny.
encodeURIComponent()
Funkcja encodeURIComponent powinna być użyta do kodowania wartości parametrów ciągu zapytania. Różnica między encodeURI a encodeURIComponent polega na tym, że encodeURIComponent koduje cały ciąg znaków, podczas gdy encodeURI ignoruje prefiks protokołu ('http://') oraz nazwę domeny. encodeURIComponent jest zaprojektowany do kodowania wszystkiego, podczas gdy encodeURI ignoruje część dotyczącą nazw domen w URL. Kiedy tyGdy chcesz zakodować wartość parametru w URL, wybierz funkcję encodeURIComponent。
decodeURIComponent()
Funkcja decodeURIComponent odkoduje zakodowany ciąg funkcji encodeURIComponent i przywróci go do normalnej zawartości.
Recenzja:
|