Ana içeriğe geç

Sorgu dizesi parametrelerini doğru kodlamak

Aracın iki modu vardır. Bileşen (encodeURIComponent) tek bir parametre adı veya değeri içindir; Tam URL (encodeURI) ise yapısı zaten doğru olan eksiksiz bir URL içindir. İkisini karıştırmak, bozuk sorgu dizelerinin en yaygın nedenidir.

Çözümlü örnek

Tam URL modu değerin içindeki & işaretini bıraktığından sunucu bir yerine iki parametre okur.

Girdi
https://example.com/search?q=salt & pepper&page=2
Sonuç · encodeURI()
https://example.com/search?q=salt%20&%20pepper&page=2

Sunucunun okuduğu parametreler

  • "q" = "salt "
  • " pepper" = ""
  • "page" = "2"

Değeri önce Bileşen modunda kodlamak onu tek bir parametre olarak korur.

Girdi
salt & pepper
Sonuç · encodeURIComponent()
salt%20%26%20pepper

https://example.com/search?q=salt%20%26%20pepper&page=2

Sunucunun okuduğu parametreler

  • "q" = "salt & pepper"
  • "page" = "2"

Bileşen ve Tam URL modlarının karakter karakter karşılaştırması

KarakterBileşenTam URL
:%3A:
/%2F/
?%3F?
#%23#
&%26&
=%3D=
+%2B+
␠%20%20
é%C3%A9%C3%A9

Araç bunu nasıl işler

  • Her parametre adını ve değerini Bileşen modunda ayrı ayrı kodlayın; bu mod & = ? # + ve / işaretlerini kaçışlar.
  • Kodlanmış çiftleri ad=değer biçiminde & ile birleştirin ve sonucu URL'deki ? işaretinden sonra ekleyin.
  • Tam URL modunu yalnızca URL'nin tamamında kullanın: : / ? # & = + işaretlerini olduğu gibi bıraktığı için bunları içeren bir değeri koruyamaz.

URL kodlama kılavuzları