İçeriğe geç

URL Kodlayıcı: URL'lerdeki Özel Karakterleri Çevrimiçi Ücretsiz Kodlama

Özel karakterleri anında kodlamak için ücretsiz URL dizesi kodlayıcı aracı. Boşlukları, Unicode ve sembolleri yüzde kodlu biçime dönüştürün. API'ler, web formları ve uluslararası URL'ler için mükemmel. Hemen deneyin!

URL Dize Kaçırıcı

Yükleme hesaplayıcısı...
📚

Belgeler

URL Kodlama: Nedir ve Nasıl Çalışır?

Yüzde kodlama olarak da adlandırılan URL kodlama, bir web adresindeki karakterleri yalnızca küçük bir güvenli ASCII karakter kümesini kullanarak temsil etme yöntemidir. Güvenli olmayan bir karakteri, ardından iki onaltılık basamak gelen bir % işaretiyle değiştirerek çalışır. Bu URL dizesi kaçışlama aracı, metni JavaScript'in yerleşik encodeURIComponent işleviyle aynı şekilde kodlar.

URL'ler Neden Kodlama Gerektirir?

Bir URL yalnızca sınırlı bir karakter kümesi içerebilir: harfler, rakamlar ve birkaç noktalama işareti. Boşluklar, aksanlı harfler, Latin alfabesi dışındaki alfabelerden karakterler ve & ya da = gibi semboller, kodlanmadan kullanıldıklarında URL'yi bozabilir veya anlamını değiştirebilir. Örneğin bir bağlantının içindeki boşluk, tarayıcının veya sunucunun URL'yi iki ayrı parça olarak okumasına neden olabilir. Yüzde kodlama, bu karakterleri her tarayıcının ve sunucunun aynı şekilde okuyabileceği bir kodla değiştirir.

Bu Aracın Değiştirmeden Bıraktığı Karakterler

Bu araç aşağıdaki karakterlere hiçbir zaman dokunmaz. Bu karakterler doğrudan aktarılır:

  • Büyük ve küçük harfler: A–Z, a–z
  • Rakamlar: 0–9
  • Noktalama işaretleri: - . _ ~ ! * ' ( )

Diğer tüm karakterler yüzde kodlamasına tabi tutulur; bunlar şunları içerir:

  • Boşluk karakteri ve : / ? # [ ] @ $ & + , ; = gibi noktalama işaretleri
  • Aksanlı harfler ve ASCII dışındaki veya Unicode'daki diğer tüm karakterler
  • Kendisi her zaman %25 hâline gelen % karakteri; bu karakter zaten yüzde kodlamalı bir dizinin parçası olsa bile

URL sözdizimine ilişkin bazı genel kılavuzlar !, *, ', ( ve ) işaretlerini, bazı bağlamlarda "kodlama gerektirebilecek" karakterler olarak diğer noktalama işaretleriyle birlikte sınıflandırır. Bu özel araç, güvenli kabul edildikleri encodeURIComponent kural kümesini izlediği için bu karakterleri kodlamaz.

Yüzde Kodlamalı Bir Dize Nasıl Hesaplanır (Formül)

Araç, girdideki her karakteri teker teker denetler ve şu kuralı uygular:

  1. Karakter yukarıda listelenen ve değiştirilmeden bırakılan karakterlerden biriyse olduğu gibi bırakılır.
  2. Aksi takdirde karakter, UTF-8 bayt dizisine dönüştürülür. Aksanlı Latin harfleri, Yunanca, Kiril ve Arap harfleri iki bayt kullanır. Çince, Japonca ve Korece karakterler üç bayt kullanır. Emojiler dört bayt kullanır.
  3. Her bayt, iki basamaklı bir onaltılık sayı olarak yazılır.
  4. Her onaltılık çiftin önüne bir % konur.
  5. Kodlanmış dizeyi oluşturmak için sonuçlar sırayla birleştirilir.

Uygulamalı örnek

Girdi: Jürgen & Björk

Karakter karakter incelendiğinde:

KarakterSonuç
JJ (değiştirilmeden)
ü%C3%BC (UTF-8 baytları 0xC3, 0xBC)
rgenrgen (değiştirilmeden)
(boşluk)%20
&%26
(boşluk)%20
BjBj (değiştirilmeden)
ö%C3%B6 (UTF-8 baytları 0xC3, 0xB6)
rkrk (değiştirilmeden)

Çıktı: J%C3%BCrgen%20%26%20Bj%C3%B6rk

İkinci bir örnek, değiştirilmeden bırakılan karakter kümesinin nasıl çalıştığını gösterir. -_.!~*'() dizesinin kodlanması, içindeki her karakter ayrılmamış karakter kümesine ait olduğu için tam olarak aynı metin olan -_.!~*'() sonucunu üretir. 100% dizesinin kodlanması ise 100%25 sonucunu üretir; çünkü % işaretinin kendisi güvenli bir karakter değildir.

Yüzde Kodlamalı Bir Dizenin Kodunu Çözme

Kod çözme işlemi süreci tersine çevirir: her %XX dizisi onaltılık bir bayt olarak okunur, baytlar özgün UTF-8 karakteri yeniden oluşturacak şekilde gruplanır ve karakter dizinin yerini alır. Örneğin %C3%BC kodu yeniden ü karakterine, %20 ise boşluğa dönüştürülür. Bu araç yalnızca kodlama yapar; işlemi tersine çevirmek için ayrı bir kod çözücü gerekir.

Yaygın Kullanımlar

Bir kişinin yazdığı metnin, programcı tarafından yazılmış metin yerine, URL'nin bir parçası hâline gelmesi gerektiğinde yüzde kodlama kullanılır:

  • Arama terimini adres çubuğuna yerleştiren arama kutuları; örneğin ?q=shoes%20%26%20bags
  • Adları, adresleri veya diğer kullanıcı verilerini taşıyan sorgu parametreleri
  • Aksanlı harfler veya Latin alfabesi dışındaki yazı sistemlerini kullanan dillerdeki başlıklara sahip sayfalara bağlantılar
  • URL'nin bir parçası olarak belirteçleri veya tanımlayıcıları ileten API istekleri

Kod Örnekleri

1// JavaScript
2encodeURIComponent("Jürgen & Björk");
3// "J%C3%BCrgen%20%26%20Bj%C3%B6rk"
4

Python'daki quote işlevi harfleri, rakamları ve - . _ ~ karakterlerini her zaman olduğu gibi bırakır. Bu araçla eşleşmesi için beş ek karakter ! * ' ( ), safe içinde listelenmelidir. Bunlar olmadan, quote bunun yerine %21 %2A %27 %28 %29 döndürür.

Tarihçe

Bir URL'deki güvenli olmayan karakterleri kodlama fikri, URL biçimini tanımlayan ilk belgelerden biri olan, (4.410 cm) 1994 tarihli RFC 1738'e kadar uzanır. 2005'te yayımlanan RFC 3986, kuralları güncellemiş ve hiçbir zaman kodlanması gerekmeyen "ayrılmamış" karakter kümesini resmî olarak tanımlamıştır. Bu aracın temel aldığı JavaScript işlevi encodeURIComponent, RFC 3986'den biraz daha geniş bir ayrılmamış karakter kümesini izler: daha önceki bir URI belirtiminin sürümüne uygun olarak ! * ' ( ve ) karakterlerini de kodlamadan bırakır.

Sık sorulan sorular

URL kodlaması ile URL kaçışlaması arasındaki fark nedir? Aynı şeydir. Her iki terim de bir karakterin, ardından iki onaltılık basamak gelen % işaretiyle değiştirildiği yüzde kodlamayı ifade eder.

Bu araçta !, *, ', ( ve ) karakterleri neden değiştirilmeden bırakılıyor? Bu araç, söz konusu beş karakteri güvenli kabul eden ve yazıldıkları hâliyle bırakan encodeURIComponent işlevini kullanır. Diğer kodlama işlevleri ve bazı sunucular bu karakterlerin yine de kodlanmasını bekleyebilir; bu nedenle sorun çıkarsa hedef sistemi kontrol edin.

Boşluk için %20 ile + arasındaki fark nedir? Her ikisi de boşluğu temsil eder. %20, boşluk için kullanılan genel yüzde kodlamasıdır. + işareti ise yalnızca HTML form gönderimlerinde kullanılan biçim olan application/x-www-form-urlencoded verilerinin içinde kullanılan özel bir durumdur; bu araçta kullanılmaz.

Bu araç kodlanmış metnin kodunu çözer mi? Hayır. Yalnızca kodlama yapar. Girdi zaten bir % işareti içeriyorsa, bu % işareti düz bir karakter olarak kabul edilir ve olduğu gibi bırakılmak yerine çıktıda %25 hâline gelir.

Çince veya Arapça metin gibi Latin alfabesi dışındaki karakterler nasıl işlenir? Her karakter önce UTF-8 bayt dizisine dönüştürülür, ardından her bayt yüzde kodlamasına tabi tutulur. Bir Çince karakter üç bayt kullanır ve bu nedenle üç %XX grubu üretir. Bir Arapça harf iki bayt kullanır ve iki grup üretir.

Araç metni kodlamayı ne zaman reddeder? Yalnızca metin bir vekil çiftinin yarısını içerdiğinde. Vekil çifti, emoji gibi U+FFFF üzerindeki bir karakteri depolayan iki parçalı koddur. Tek başına bulunan yarım parçanın geçerli bir UTF-8 karşılığı yoktur; bu nedenle araç sonuç yerine hata gösterir. Normal yazma işlemi böyle bir değer üretemez; bu değer genellikle kesilmiş bir kopyalama işleminden veya bozuk bir bağlantıdan gelir.

URL'nin tamamını mı, yoksa yalnızca bir bölümünü mü kodlamalıyım? URL'nin yapısını oluşturan https:// ve alan adı gibi bölümleri değil, sorgu değerleri veya yol parçaları gibi kullanıcı verilerini taşıyan bölümleri kodlayın. Bir bileşen kodlayıcıyla URL'nin tamamını kodlamak, :, / ve ? karakterlerini de yüzde kodlarına dönüştürerek adresi bozacaktır.

Kaynaklar

  1. RFC 3986 — Tek Biçimli Kaynak Tanımlayıcısı (URI): Genel Sözdizimi
  2. Yüzde kodlama — Vikipedi
  3. MDN — encodeURIComponent()
  4. URL Standardı — WHATWG