Menu

URL Kodlayıcı / Çözücü

URL bileşenlerini güvenli biçimde kodla ve çöz.

Son güncelleme

Mod
Kapsam
ÇözülmüşBaşlamak için metin yapıştır
Kodlanmış
Yüzde-kodlu veya çözülmüş çıktı burada görünür — Unicode destekli.

URL encoder nedir?

URL encoder (percent-encoder ya da URI encoder olarak da bilinir), URL içinde rezerve edilmiş veya güvenli olmayan karakterleri % ardından iki onaltılık (hex) basamakla değiştirir. Geliştiriciler bu araca query string oluştururken, path segment'lerini escape ederken, boşluk veya ASCII dışı karakter içeren URL'ler paylaşırken ya da redirect sorunlarını ayıklarken başvurur.

URL'ler küçük bir ASCII karakter kümesiyle sınırlıdır. Bu kümenin dışında kalan her şey — boşluklar, aksanlar, emoji veya veri olarak kullanıldığında ?, #, &, = gibi rezerve sembolleri — tarayıcıdan sunucuya sağ salim ulaşabilmesi için percent-encoded edilmek zorundadır.

JavaScript iki farklı encoding fonksiyonu sunar: encodeURI (URL yapısını korur: /, ?, #, &) ve encodeURIComponent (rezerve olan her şeyi kodlar). Query string'e koyacağın *değerler* için encodeURIComponent, çalışır halde tutmak istediğin *bütün URL'ler* için encodeURI kullan.

URL kodlarken neler öğreneceksin

  • Percent-encoding bir baytı % ve iki hex basamağıyla değiştirir — örneğin boşluk %20 olur.
  • Rezerve karakterler (: / ? # & = +) URL yapısında anlam taşır. Ayraç olarak değil veri olarak kullanılıyorlarsa kodlanmaları gerekir.
  • ASCII dışı metin (aksanlar, emoji, Kiril, CJK) önce UTF-8 baytlarına çevrilir, sonra her bayt percent-encoded edilir.

Adım adım URL encode ve decode

  1. Yönü seç

    Elinde ham metin varsa ve URL-safe hale getirmek istiyorsan Encode'u seç. Elinde %-encoded bir metin varsa ve orijinaline dönmek istiyorsan Decode'u seç.

  2. Encoding modunu belirle

    Query string değerleri için encodeURIComponent (rezerve olan her şeyi kodlar), bütün URL'ler için ise encodeURI (yapıyı korur) seç.

  3. Girdiyi yapıştır

    Ham metni veya kodlanmış URL'yi yapıştır. Toplu decode için çok satırlı girdi de çalışıyor.

  4. Sonucu kopyala

    Kodlanmış ya da çözülmüş değeri kopyala. Dönüşüm tamamen tarayıcıda lokal olarak çalışır, yani URL içindeki gizli bilgiler senin makinenden çıkmaz.

Sık karşılaşılan URL kodlamaları için hızlı referans

En çok karşına çıkacak karakterler ve percent-encoded karşılıkları. Rezerve karakterlerin anlamı RFC 3986'dan geliyor.

KarakterKodlanmışNeden
boşluk%20URL'lerde boşluğa izin verilmez
!%21Bazı sunucularda rezerve
#%23Fragment'ın başlangıcını gösterir
$%24Rezerve karakter
&%26Query parametrelerini ayırır
+%2BForm-encoded body'lerde boşluk anlamına gelir
/%2FPath ayracı
:%3AScheme ile host'u ayırır
=%3DQuery string'de anahtarı değerden ayırır
?%3FQuery string'in başlangıcını gösterir
@%40Userinfo ile host'u ayırır
UTF-8 baytı%C3%A9ASCII dışı her bayt ayrı ayrı kodlanır

Deneyebileceğin URL encoding örnekleri

Bir arama sorgusunu kodla

Ham

hello world & more

Kodlanmış

hello%20world%20%26%20more

Boşluklar %20, & ise %26 oluyor; böylece query parametre ayracıyla karıştırılmıyor.

ASCII dışı karakterleri kodla

Ham

café

Kodlanmış

caf%C3%A9

é karakteri UTF-8'de 0xC3 0xA9 bayt dizisidir; bu yüzden kodlanmış halde tek karakter için *iki* %XX grubu görüyorsun.

encodeURI ile encodeURIComponent karşılaştırması

Ham

https://example.com/path?q=hello world

encodeURI

https://example.com/path?q=hello%20world

encodeURIComponent

https%3A%2F%2Fexample.com%2Fpath%3Fq%3Dhello%20world

encodeURI URL yapısını (slash'ler, ?, =) bozmadan bırakır. encodeURIComponent ise rezerve olan her şeyi kodlar — onu query string'in *içine* koyacağın değerler için kullan, asla bütün bir URL'ye uygulama.

Sık yapılan URL encoding hataları

  • Query string değerleri için encodeURI kullanmak — & ve = kodlanmadan kalır ve parametre parse'ı bozulur.
  • URL'yi iki kez kodlamak. %20 yerine %2520 görüyorsan klasik double-encoding hatasındasın.
  • Form-encoded body'lerde (application/x-www-form-urlencoded) + boşluk anlamına gelirken URL path veya query'de düz + olduğunu unutmak.

URL Encoding SSS

URL encoding nedir?
URL encoding (percent-encoding olarak da bilinir), URL'lerde özel anlamı olan ya da güvenli şekilde iletilemeyen karakterleri % ve iki hex basamağıyla temsil etmenin yoludur.
encodeURI ile encodeURIComponent arasındaki fark nedir?
encodeURI, URL yapısını oluşturan karakterleri (/, ?, #, &, =, +) korur. encodeURIComponent ise hepsini kodlar; URL içine yerleştireceğin tek tek *değerler* — query parametre değerleri, path segment'leri, fragment'ler — için ihtiyacın olan tam da budur. Detaylar için MDN'deki encodeURI ve encodeURIComponent sayfalarına bak.
Boşluk neden %20 oluyor?
URL'lerde boşluğa izin verilmediği için boşluk, ASCII boşluk karakterinin (hex'te 0x20) percent-encoded hali olan %20 ile değiştirilir.
Ne zaman URL-encode yapmalıyım?
Kullanıcıdan gelen veya dinamik olan her değeri URL'ye koymadan önce kodla — query string değerleri, path segment'leri, redirect hedefleri, OAuth parametreleri. Ham girdinin URL-safe olduğuna asla güvenme.
URL encoding geri alınabilir mi?
Evet — buna URL decoding deniyor. decodeURI, decodeURIComponent veya herhangi bir URL-decoder, percent-encoding'i orijinal karakterlere geri çevirir.

Daha fazla bilgi

Diğer geliştirici araçları

Coddy ile kodlamayı öğren

BAŞLA