URL Kodlayıcı
Metinleri URL yapısını bozmadan güvenle aktaracak biçimde yüzde kodlamasına dönüştür.
Web adresleri yalnızca belirli bir karakter kümesini doğrudan kabul eder. Boşluklar, ve işaretleri, soru işaretleri veya Latin alfabesi dışındaki Türkçe harfler gibi öğeler usulüne uygun şekilde yüzde kodlamasına dönüştürülmezse bağlantı yapısı bozulur ve çözülmesi güç hatalar ortaya çıkar.
URL Encode İşleminde Ayrılmış Karakterlerin Rolü
Belirli karakterler URL dizilimi içinde özel görevlere sahiptir. Örneğin ? işareti sorgu parametrelerinin başlangıcını gösterir, & işareti değişkenleri birbirinden ayırır, = işareti anahtarı değere bağlar ve # işareti sayfa içi parçaları belirtir.
Bir parametre değerinin içine doğrudan ve işareti eklendiğinde sunucu bunu yeni bir değişkenin başlangıcı olarak algılar. Sonuç olarak girdiğin veri yarıda kesilir ve beklenmedik boş parametreler oluşur. Metni %26 biçiminde kodlamak, ayrıştırıcıya bu karakterin bir yapı taşı değil doğrudan veri olduğunu bildirir.
URL Encode Aracı ile Metin Dönüştürme
- URL içinde kullanmak istediğin metni ya da parametre değerini alana yapıştır.
- Dönüştürme butonuna tıkla.
- Oluşan yüzde kodlu çıktıyı kopyala ve sorgu dizisi ya da yönlendirme hedefine ekle.
- Tüm adresi tek seferde vermek yerine her parametre değerini ayrı ayrı kodla.
- Oluşturulan bağlantının doğru çözülüp çözülmediğini gerektiğinde çözücü araçla doğrula.
URL Encode Sırasında En Çok Karşılaşılan Karakterler
| Karakter | Kodlanmış Hali | Neden Önemlidir |
|---|---|---|
| boşluk | %20 veya + | Çoğu ortamda bağlantıyı tamamen geçersiz kılar |
| & | %26 | Aksi halde parametre ayırıcı olarak yorumlanır |
| ? | %3F | Aksi halde sorgu metninin başlangıcı sanılır |
| = | %3D | Aksi halde anahtar ve değer ayırıcı olarak algılanır |
| # | %23 | Devamındaki tüm içerik sayfa içi bağlantı olarak görülür |
| / | %2F | Aksi halde dizin ya da yol ayracı olarak işlenir |
| + | %2B | Aksi halde çözülme esnasında boşluğa dönüşebilir |
URL Encode Yaparken Adresin Tamamını Kodlamaktan Kaçın
En yaygın hatalardan biri eksiksiz bir web adresini bir bütün olarak kodlama kutusuna atmaktır. Böyle yapıldığında :// kalıbı ve geçerli tüm eğik çizgiler yüzde dizilerine dönüşür ve sunucuların tanıyamayacağı anlamsız bir metin ortaya çıkar.
En sağlıklı yöntem her değişken değerini tek tek dönüştürüp ana bağlantıyı bunun etrafında kurmaktır. JavaScript tarafında parametre değerleri için encodeURIComponent() fonksiyonunun tercih edilmesi ve encodeURI() yönteminin yalnızca tüm adresin genel düzenlemesinde kullanılması bu mantığa dayanır.
URL Encode Hakkında Sıkça Sorulan Sorular
Yüzde kodlaması ne anlama gelir?
Bir karakterin yüzde işareti ve ardından gelen onaltılık bayt değeriyle gösterilmesidir. ASCII tablosundaki onaltılık karşılığı 20 olduğu için boşluk karakteri %20 olarak temsil edilir.
Boşluk karakteri neden bazen artı işareti olarak görünür?
HTML form gönderimlerinde geçmişten bu yana sorgu dizisi içindeki boşluklar için + kullanımı yaygındır. Her iki biçim de geçerlidir; ancak %20 her yerde çalışırken + yalnızca sorgu parametrelerinde geçerlidir ve dosya yollarında kullanılamaz.
encodeURIComponent ile encodeURI arasındaki fark nedir?
encodeURIComponent ayrılmış karakterleri de dönüştürdüğü için bağımsız parametre değerlerinde kullanılır. encodeURI ise yalnızca boşluk gibi tamamen geçersiz karakterleri dönüştürür ve kurulu bağlantı yapısını korur.
Türkçe ve Latin dışı karakterler nasıl dönüştürülür?
Özel karakterler önce UTF-8 bayt dizilerine çevrilir ve her bayt sırayla yüzde koduna dönüştürülür. Bu nedenle tek bir Türkçe harf çoğunlukla iki adet yüzde dizisi üretir.
Bir metni üst üste iki kez kodlamak sorun yaratır mı?
Evet, çift kodlama ciddi bir hatadır. İlk işlemde oluşan %20 ikinci işlemde %2520 haline gelir ve sunucu bunu bir kez çözdüğünde verinin içinde fazladan %20 metni kalır.