URL kodlaması
Bazı karakterler URL'lerde (örneğin boşluklarda) görünmez, bazıları URL'lerde özel anlamlara sahiptir. W3 URI spesifikasyonunda tanımlanan sözdizimine uygun olacak şekilde özel karakterleri dönüştürmemiz gerekiyor (RFC 3986). Bu, URL'lerin yalnızca özel bir ASCII karakterinin alt kümesini içermesi gerektiği anlamına gelir: bildiğimiz harfler ve sayılar ile URL'de kontrol karakteri olarak kullanılan bazı ayrılmış karakterler.
JavaScript'te URL kodlama işleme
JavaScript'te, hem encodeURIComponent() hem de encodeURI() yerleşik fonksiyonları URL ile kodlanabilir ve URL'deki ayrılmış karakterler UTF-8 kodlu karakterlerle değiştirilir.
Çoğu tarayıcı, örneğin boşlukları %20 olarak kodlamak gibi URL'leri otomatik olarak kodlar, ancak her zaman bazı istisnalar vardır. Neyse ki, tarayıcılar yerleşik URL kodlama ve çözme fonksiyonları sağlar: encodeURI, encodeURIComponent ve decodeURI, decodeURIComponent. Soru, bu fonksiyonların nasıl kullanılacağı ve aralarındaki farkın nedir?
encodeURI()
URL ile bir diziyi kodlamak kolaydır, sadece encodeURI'yi çağırın ve kodlamak istediğiniz diziyi iletin. Bu fonksiyon kodlanmış URL'yi döndürür.
decodeURI()
Bu fonksiyon, decodeURI fonksiyonunu çözer ve çağırır, kodlanmış diziyi iletir ve ardından çözülmüş normal diziyi geri döndürür.
encodeURIComponent()
Sorgu dizisinin parametre değerlerini kodlamak için encodeURIComponent fonksiyonu kullanılmalıdır. encodeURI ile encodeURIComponent arasındaki fark, encodeURIComponent'in tüm diziyi kodlaması, encodeURI'nin protokol önekini ('http://') ve alan adını göz ardı etmesidir. encodeURIComponent her şeyi kodlamak için tasarlanmıştır, encodeURI ise URL'deki alan adı kısmını görmezden gelir. Ne zamanURL'de parametre değerini kodlamak istediğinizde, encodeURIComponent fonksiyonunu seçin。
decodeURIComponent()
DecodeURIComponent fonksiyonu, encodeURIComponent fonksiyonunun kodlanmış dizisini çözer ve onu normal içeriğine geri döndürür.
Eleştiri:
|