URL Kodlayıcı ve Çözücü

URL'ler ve sorgu dizeleri için metni yüzde kodlamasıyla kodlayın, kodlanmış URL'leri çözün ve herhangi bir URL'yi, sorgu parametreleri çözülmüş olarak parçalarına ayırın.

Tarayıcınızda çalışırKayıt gerekmezHiçbir şey yüklenmez

Kodlanmış

URL Encode / Decode nasıl kullanılır?

  1. Kodla veya Çöz seçeneğini belirleyin.
  2. Kodlarken tek bir sorgu değeri veya yol parçası için Bileşen'i, URL yapısını korumak için Tam URL'yi ya da Form verisi'ni (application/x-www-form-urlencoded için) seçin.
  3. Metninizi yapıştırın. Sonuç anında görünür; hatalı kaçış dizileri konumlarıyla birlikte bildirilir.
  4. Host, yol, fragment ve çözülmüş tüm sorgu parametrelerini görmek için tam bir URL'yi URL ayrıştırıcı'ya yapıştırın.

URL kodlama nedir?

URL'ler yalnızca sınırlı bir ASCII karakter kümesi içerebilir (RFC 3986). Boşluklar, İngilizce dışındaki harfler ve &, ? ve # gibi özel anlamı olan karakterler dahil geri kalan her şey, her UTF-8 baytı için bir yüzde işareti ve ardından iki hex basamakla yazılır. Boşluk %20, é ise %C3%A9 olur.

encodeURIComponent ve encodeURI

FonksiyonDokunmadıklarıKullanım alanı
encodeURIComponentA-Z a-z 0-9 - _ . ~Tek bir sorgu değeri, yol parçası veya parametre adı
encodeURIEk olarak : / ? # [ ] @ ! $ & ' ( ) * + , ; =Yapısı korunması gereken tam bir URL

Bir sorgu değerinde encodeURI kullanmak klasik bir hatadır: değerin içindeki & kaçışlanmaz ve parametreyi ikiye böler. Bu aracın Bileşen modu, katı RFC 3986 uyumluluğu için ! ' ( ) * karakterlerini de kaçışlar.

Boşluk için %20 mi, + mı?

Yollarda boşluk %20 olmalıdır. HTML form gönderimlerinde (application/x-www-form-urlencoded) ve birçok sorgu dizesinde ise boşluk + olarak yazılır. Çözerken form verisi için + işaretini boşluk say'ı açın; jane+test@example.com örneğindeki gibi düz bir artı işaretinin önemli olduğu durumlarda kapatın.

Sıkça sorulan sorular

Çözerken neden “Malformed escape” (hatalı kaçış) hatası alıyorum?
Bir % işaretinden sonra tam olarak iki hex basamak gelmelidir. “%50 indirim” gibi bir ifadedeki düz yüzde işareti %25 olarak kodlanmış olmalıydı. Hata, hatalı dizinin konumunu gösterir.
“Invalid UTF-8 byte sequence” ne anlama geliyor?
Baytlar UTF-8 olarak kodlanmamış; çoğunlukla metin Latin-1 kullanan eski bir sistem tarafından üretildiği için (örneğin é için %C3%A9 yerine %E9) ya da dize bir karakterin ortasından kesildiği için.
URL'nin tamamını mı yoksa yalnızca parametreleri mi kodlamalıyım?
Her parametre adını ve değerini bileşen kodlamasıyla ayrı ayrı kodlayın, ardından = ve & ile birleştirin. Tam bir URL'yi bileşen moduyla kodlamak :// kısmını da kaçışlar ve URL'yi bozar.
Çift kodlama sorun olur mu?
Evet. Zaten kodlanmış bir dizeyi tekrar kodlamak %20'yi %2520'ye çevirir. Ardından hex basamaklar gelen %25 görüyorsanız, değer büyük olasılıkla iki kez kodlanmıştır. Orijinali elde etmek için iki kez çözün.

İlgili araçlar