Tüm araçlar

URL Encoder/Decoder

URL'lerini ve URI bileşenlerini encode/decode et

Nasıl çalışır

URL Encoder/DecoderURL'lerini ve URI bileşenlerini encode/decode et. Tüm işlemler tarayıcında yapılır — yükleme yok, üyelik yok, e-posta gerek yok. Sonsuza dek ücretsiz.

Son güncelleme:

URL Encoder/Decoder hakkında

URL'ler güvenle yalnızca küçük bir ASCII alt kümesini taşıyabilir. Bir bağlantıya boşluk, eğik çizgi, emoji, Türkçe "ş" ya da içinde "&" geçen bir query değeri koyman gerektiği an, percent-encode etmek zorundasın. Bu URL encoder/decoder tarayıcının dahili olarak kullandığı algoritmaların aynısını uygular: tüm URL'ler için encodeURI, tek tek query değerleri için encodeURIComponent. Çıktı, kodunun üreteceğiyle byte-byte aynı.

OAuth redirect hazırlarken, çift encode olmuş bir webhook URL'sini debug ederken, içinde boşluk geçen UTM parametreleriyle tracking link kurarken ya da Slack'e ASCII dışı bir path yapıştırıp "%C3%BC" karmaşası alırken kullan. Mod değiştirmek, "/", "?" ve "&" gibi rezerve karakterlerin tüm-URL ile component context'inde nasıl farklı işlendiğini gösterir — encoding bug'larının çoğu tam burada saklanır.

Her şey tarayıcında olur. URL'deki token, session id veya query string'deki PII dahil hiçbir şey sunucuya gönderilmez, loglanmaz, cache'lenmez. Production'daki bir bağlantıda sızdırmak istemediğin tek seferlik imzalı bir parametre varsa bu fark eder.

URL Encoder/Decoder nasıl kullanılır

  1. URL'ini veya ham metnini input kutusuna yapıştır.
  2. Mod seç: query parametre değerleri için encodeURIComponent, tüm URL için encodeURI (full URL).
  3. Encode'a tıkla — ham karakterler percent-escape'e dönsün; veya Decode ile önceden encode edilmiş bir string'i geri çevir.
  4. Sonucu tek tıkla kopyala, koduna, tarayıcına ya da Postman isteğine yapıştır.
  5. Decode'da "Geçersiz encode dizisi" görüyorsan, iki hex hane takip etmeyen başıboş "%" işaretlerini ara.

Yaygın kullanım senaryoları

  • OAuth/SAML redirect URL'leri kurarken state ve code parametrelerinin sağlam kalmasını sağlamak.
  • Content-Disposition header'ı veya S3 key'i için ASCII dışı dosya adlarını encode etmek.
  • Yanlış ayarlanmış bir proxy'den çıkmış çift encode ("%2520" yerine "%20") URL'leri temizlemek.
  • İçinde boşluk, ampersand veya tırnak geçen tracking link'leri için güvenli query string değerleri üretmek.
  • Bir servisin değer encode ettiği, diğerinin iki kere decode ettiği webhook payload'larını debug etmek.

İpuçları ve dikkat edilmesi gerekenler

  • Query string'de "=" sonrasındaki tek bir değer için encodeURIComponent kullan. encodeURI'yi sadece tüm URL için sakla — "&", "=", "?" ve "/" karakterlerine bilerek dokunmaz.
  • Query string'deki boşluklar "%20" olmalı, "+" değil. "+" formu sadece application/x-www-form-urlencoded body'lerde geçerli, URL path'lerinde değil.
  • Bir string encode → decode round-trip'inden sonra fazladan escape ile geri geliyorsa, input zaten bir kere encode edilmiş demektir — önce decode et, sonra yeniden encode et.
  • Hash fragment'ları ("#bolum") encodeURI ile korunur ama encodeURIComponent ile düz metin gibi escape edilir — context'ine göre mod seç.

Sıkça sorulan sorular

encodeURI ve encodeURIComponent farkı nedir?

encodeURI URL yapısal karakterlerini (/, ?, &) korur — tüm URL için. encodeURIComponent bunları da percent-encode eder — query parametre değerleri için.

Decode'da neden 'Geçersiz encode dizisi' alıyorum?

Girdide bozuk bir % kaçışı var (örn '%G1'). Tüm % işaretlerini geçerli iki hex hane takip ettiğinden emin ol veya önce 'Encode' uygula.

Verilerim bir yere gönderiliyor mu?

Hayır. Encode/decode tarayıcında lokal çalışır — hiçbir şey yüklenmez veya loglanmaz.

Türkçe karakterler veya emoji destekliyor mu?

Evet. Input UTF-8 olarak yorumlanır, sonra percent-encode edilir; "ç" → "%C3%A7", tek bir emoji ise dört byte'lık bir diziye dönüşür — RFC 3986 ile ve tarayıcıdaki fetch() ile birebir aynı.

Tüm URL'i query string'le birlikte tek seferde encode edebilir miyim?

"encodeURI (full URL)" modunu kullan — /, ?, #, &, = yapısal karakterleri korunur, geri kalan her şey escape edilir. Bir parametre değerini ayrıca encode etmen gerekiyorsa (örn. başka URL içinde gömülü bir redirect URL), o parça için encodeURIComponent'e geç.

"+" neden bazen "%2B" oluyor bazen kalıyor?

encodeURIComponent ile işlenen URL path veya query value'da "+" rezervdir ve "%2B" olur. encodeURI modunda güvenli sayılır ve dokunulmaz. En sık bug, ikisini karıştırıp "name+tag@example.com" gibi bir email'in boşluk olarak parse edilmesi.

İlgili araçlar