URI Bileşeni Kodlayıcı

name=John & Jane gibi bir değeri kodlamadan bir URL’ye geçirdiyseniz acısını bilirsiniz: & yeni bir parametre olarak okunur ve sunucu çöp görür. Bu araç, RFC 3986’ye uyarak herhangi bir dizeyi URI bileşeni olarak güvenle kullanmak için yüzde kodlar ve her ayrılmış karakteri bir %HH çiftine dönüştürür (boşluklar dâhil). Bir parça, bir sorgu değeri ya da bir yönlendirme hedefi yapıştırın ve herhangi bir URL’ye birleştirmek için güvenli bir şey geri alın.

Bir URI bileşeni nasıl kodlanır

  1. 1

    Değerinizi yapıştırın

    Tek bir sorgu parametresi değeri, yol parçası ya da fragment dizesi bırakın.

  2. 2

    Kodla ya da çöz seçin

    Yüzde kaçışlarını orijinal karakterlere geri çevirmek için yönü değiştirin.

  3. 3

    Çalıştırın

    Araç her karakteri UTF-8 kodlar, sonra her ayrılmış baytı %HH ile değiştirir.

  4. 4

    Sonucu kopyalayın

    Çıktıyı doğrudan URL şablonunuza ya da API istemcinize bırakın.

Ne kaçış edilir

Bu kodlayıcı RFC 3986’yı izler: yalnızca ayrılmamış küme dokunulmadan geçer, A-Z a-z 0-9 - _ . ~. Diğer her şey yüzde kodlu UTF-8 olur; buna boşluk ve JavaScript’in encodeURIComponent’inin rahat bırakacağı ! * ' ( ) alt sınırlayıcıları da dâhildir.

Karakter Kodlanışı
boşluk %20
! %21
# %23
& %26
' %27
( %28
) %29
* %2A
+ %2B
/ %2F
= %3D
? %3F
é %C3%A9

Bileşen ile tam URI

Bu kodlayıcı encodeURI‘den daha katıdır; o, : / ? # [ ] @ ! $ & ' ( ) * + , ; = karakterlerini rahat bırakır çünkü bunlar bir URL’de yapısaldır. Bir sorgu dizesine birleştirdiğiniz bir değer için katı biçimi istersiniz, bu araç da tam olarak onu üretir: ! ' ( ) * karakterlerini bile kaçış eder ve böylece JavaScript’in encodeURIComponent’inden bir adım öteye gider.

const url = `/search?q=${encodeURIComponent(userInput)}`;

Yaygın tuzaklar

  • Çift kodlama: zaten kodlanmış bir şeyi kodlamak size %20 yerine %2520 verir. Kaynaktan emin değilseniz her zaman önce çözün.
  • Formlardaki artı işaretleri: HTML form gönderimi boşlukları %20 değil + olarak kodlar. RFC 3986’yı katı izleyen çözücüler (bu dâhil) +’yı tekrar boşluğa çevirmez. O durumlar için form farkında bir çözücü kullanın.
  • Yol ayırıcılar: /’yi burada kodlamak onu %2F yapar. Gerçek yol yapısını korumak istiyorsanız önce segmentleri birleştirin ve her birini ayrı ayrı kodlayın.

Sık Sorulan Sorular

Bu, RFC 3986’nin yüzde kodlamasıdır, katı biçim. :, /, ?, # ve diğer ayrılmış karakterleri kaçış eder (ayrıca !, ', (, ) ve *) çünkü bir bileşen içinde URL yapısı taşımamalıdır. Bu da onu JavaScript’in encodeURIComponent’inden daha katı, encodeURI’den çok daha katı yapar.

%20 RFC 3986 yöntemidir. Boşluk için +, application/x-www-form-urlencoded gövde kodlamasından kalma eski bir mirastır. URL’lerdeki sorgu dizeleri için %20 her zaman güvenlidir; + yalnızca bir form POST’undan üretildiğinde sunucuda beklenir.

Her karakter önce UTF-8 kodlanır, sonra her bayt kaçış edilir. 日 gibi bir karakter %E6%97%A5 olur (üç bayt).

Hayır. Değer, sonucunuzu oluşturmak için sunucuda yüzde kodlanır ve saklanmaz ya da günlüğe yazılmaz; yapıştırdığınız hiçbir şey yanıt gönderildikten sonra tutulmaz.

İlgili Araçlar

Araç diğer dillerde mevcuttur