URL'leri Kodlama ve Çözme: Tam Kılavuz
Hızlı Yanıt
URL kodlama, unsafe karakterleri XX'nin byte'ın hex değeri olduğu %XX dizilerine dönüştürür. Boşluk %20 (veya form data'da +), Çin karakterleri multi-byte %XX dizileri olur. Ücretsiz URL Encoder ve URL Decoder kullanın —tüm işleme tarayıcınızda yerel olarak olur.
giriiş
URL kodlama, percent-encoding de denir, URL'deki reserved ve unsafe karakterleri internet üzerinden güvenle iletilebilecek şekilde kodlama mekanizmasıdır. URL'ler sınırlı bir ASCII karakter seti içerebilir; başka herhangi bir karakter (boşluk, non-ASCII harf, sembol), % ile başlayan ve iki hex rakamı temsil eden bir dizi olarak percent-kodlanmalıdır.
Adım adım
-
Neyin kodlanması gerektiğini belirleyin
Ayrılmamış kümede olmayan karakterler (A-Z, a-z, 0-9, -, ., _, ~) yüzde olarak kodlanmalıdır. Buna boşluklar, = ve & gibi sorgu ayırıcılar, eğik çizgiler ve Çince, Arapça veya emoji gibi tüm ASCII olmayan karakterler dahildir.
-
URL veya sorgu dizesini kodlayın
Metninizi URL Kodlayıcı aracına yapıştırın. Ayrılmış her karakteri kodlamak için encodeURIComponent() işlevini kullanır. Sonuç anında çıktı alanında görünür.
-
Kodlanmış sonucu kopyalayın
Yüzde kodlu dizeyi kopyalamak için Kopyala düğmesini tıklayın. Artık bunu bir URL sorgu parametresine, API isteğine veya form gönderimine güvenle gömebilirsiniz.
-
Kodlanmış bir URL kodunun kodunu çözün
Kodlanmış bir URL veya sorgu dizesini URL Kod Çözücü aracına yapıştırın. Orijinal karakterleri geri yüklemek için decodeURIComponent() işlevini kullanır. Kodu çözülmüş çıktının beklentinizle eşleştiğini doğrulayın.
-
Uç vakaları doğrulayın
Boşlukların kodunun doğru şekilde çözüldüğünü (%20 vs +), çok baytlı UTF-8 dizilerinin kodunun doğru karaktere çözüldüğünü ve zaten kodlanmış dizelerin çift kodlanmadığını kontrol edin.
Örnekler
Metni boşlukla kodlayın
Giriş: Hello World
Çıkış: Hello%20World
Yol ayırıcıyı kodlama
Giriş: a/b
Çıkış: a%2Fb
Çince karakterleri kodlayın (UTF-8)
Giriş: 你好
Çıkış: %E4%BD%A0%E5%A5%BD
Kodlanmış bir sorgu parametresinin kodunu çözme
Giriş: key%3Dvalue%26foo%3Dbar
Çıkış: key=value&foo=bar
Yaygın Sorunlar
- Çift kodlama: önceden kodlanmış bir dizenin kodlanması %20'yi %2520'ye dönüştürür. Yeniden kodlamadan önce daima girişin zaten kodlanmış olup olmadığını kontrol edin.
- encodeURI'yi encodeURIComponent ile karıştırmak: encodeURI, /, ?, & gibi ayrılmış karakterleri tam URLs için olduğu gibi tutarken, encodeURIComponent sorgu parametresi değerleri için her şeyi kodlar.
- Alan işleme: %20 yüzde kodlu formdur; + yalnızca application/x-www-form-urlencoded gövde verilerinde geçerlidir, RFC 3986'ya göre URL yolunda veya sorgu dizesinde geçerli değildir.
- UTF-8 olmayan eski kodlamalar: Modern tarayıcılar UTF-8 olarak kodlar, ancak eski sistemler GBK veya Latin-1 kullanabilir ve diğer tarafta kod çözüldüğünde mojibake'e neden olur.
İpuçları
- Bireysel sorgu parametresi değerleri için encodeURIComponent() öğesini ve zaten iyi biçimlendirilmiş olan URLs öğesinin tamamı için encodeURI() öğesini kullanın.
- Sorgu dizeleri oluştururken değeri kodlayın, ancak = veya & ayırıcılarını değil; her değeri ayrı ayrı kodlayın ve ardından & ile birleştirin.
- Hatalı biçimlendirilmiş sorgu dizeleri nedeniyle 400 hata döndüren API çağrılarının hatalarını ayıklamak için URL Kodlayıcı ve Kod Çözücü araçlarımızı kullanın.
- Mojibake'den kaçınmak için her zaman aynı karakter kodlamasını (UTF-8) kullanarak sunucu tarafında kod çözün.