1. Bir arama terimi adresin yapısını bozabilir

Kullanıcının arama kutusuna “PHP & JavaScript” yazdığını düşün. Bu değeri doğrudan ?q= sonuna eklersen & karakteri yeni bir parametre gibi yorumlanabilir. Metnin anlamı ile URL'nin ayırıcı işaretleri çakışır. Çözüm, parametre değerini adresin bir bileşeni olarak kodlamaktır.

Adresin tamamını ve tek bir parametreyi aynı işlemle dönüştürme. encodeURIComponent bir bileşendeki ayırıcıları da kodlar; bütün URL'ye uygulandığında iki nokta ve eğik çizgiler adres yapısı olmaktan çıkar. Tam adres kurarken URL ve URLSearchParams çoğu durumda daha açık bir yol sunar.

2. Parametreleri URLSearchParams ile kur

Aşağıdaki örnek, arama metninin URL içinde güvenli bir parametre değeri olarak yer almasını sağlar. q değerine & veya Türkçe karakter koyduğunda ayrı parametre oluşmaz. Kodlanmış adresin tarayıcıda nasıl göründüğü ile sunucunun aldığı çözümlenmiş değeri ayırt et.

URLSearchParams boşluğu form kodlamasında + olarak temsil edebilir. encodeURIComponent ise boşluğu %20 ile kodlar. Bu iki çıktının görünüşü farklı olsa da kullanıldıkları bağlamdaki kuralları anlamak gerekir. Bir dönüşüm fonksiyonunu başka bir formatın çözümleyicisi gibi kullanma.

JavaScript
const url = new URL('/ara', window.location.origin);
url.searchParams.set('q', 'PHP & JavaScript');
url.searchParams.set('kategori', 'web');
console.log(url.toString());

const singleValue = encodeURIComponent('İstanbul / kod');
console.log(singleValue);

3. Çifte kodlamadan kaçın

Zaten kodlanmış %2F dizisini yeniden encodeURIComponent ile dönüştürürsen yüzde işareti de kodlanır ve %252F elde edersin. Karşı taraf bir kez çözümlediğinde ilk metnin tamamını geri alamayabilir. Değerin ham mı, önceden kodlanmış mı olduğunu uygulama sözleşmesinde netleştir.

Çözümleme de sınırsız bir döngü olmamalıdır. Bir girdiyi tekrar tekrar decode ederek “normalleştirmek”, güvenlik kontrolüyle gerçek kullanılan değer arasında fark yaratabilir. İstenen veri formatını sınırda kabul et; rastgele sayıda dönüşüm uygulama.

4. Bozuk yüzde dizileri hata verir

decodeURIComponent geçersiz bir yüzde dizisinde URIError üretebilir. Çevrimiçi araçta bu hatayı yakalayıp kullanıcıya açıklamak gerekir. İşlem başarısızken önceki başarılı çıktıyı ekranda bırakmak, kullanıcının yanlış sonucu kopyalamasına neden olabilir.

Kodlama bir güvenlik doğrulamasının yerine geçmez. URL kodlanmış bir değer uygulamada HTML'e yazılacaksa ayrıca uygun HTML kaçışı gerekir. Bir adresi bağlantı hedefi yaparken izin verilen protokolü de kontrol et; yüzde kodlama zararlı bir protokolü güvenli hale getirmez.

5. Hangi aracı ne zaman kullanmalı?

Tek bir yol veya sorgu bileşeni için encodeURIComponent; tam adres oluşturmak için URL; birden çok sorgu parametresi için URLSearchParams seç. Sunucu tarafında karşılık gelen çözümleme mekanizmasının aynı formatı beklediğini doğrula.

KodBilgini URL aracı bileşen kodlaması yapar. Bu sınırlamayı ekranda belirtir, bozuk girdi için açık hata verir ve metni cihazından dışarı göndermez. Tam URL'yi düzenlerken araç çıktısını adres çubuğuna doğrudan yapıştırmadan önce amacını kontrol et.

Kaynaklar ve kontrol notu

Bu rehber yapay zekâ desteğiyle hazırlanmış özgün bir editoryal içeriktir. Kaynak kontrolü: 30 Eylül 2026. Örnekleri kendi proje koşullarına uyarlayarak doğrula.

Bir hata fark ettiysen editörlüğe bildir; düzeltmeleri güncelleme tarihiyle işleriz.