URL Encoder & HTML Entity Encoder

URL Sorgu Parametrelerini Kodlama: Online Kodlayıcı

Sorgu parametre değerlerini boşluklar, ve işaretleri ve Unicode ile URL kodlayın. encodeURIComponent vs encodeURI, %20 vs + ve çift kodlama hataları.

Verileriniz tarayıcınızdan çıkmaz.

İlgili Araçlar

Kodlanmış Sonuç

Giriş search query=hello world&category=café & résumé&redirect=https://example.com/path?id=42 şu şekilde kodlanır:

search%20query%3Dhello%20world%26category%3Dcaf%C3%A9%20%26%20r%C3%A9sum%C3%A9%26redirect%3Dhttps%3A%2F%2Fexample.com%2Fpath%3Fid%3D42

Ayrılmamış karakterler (A-Z a-z 0-9 - _ . ~) dışındaki her karakter yüzde kodlu formuyla değiştirilmiştir.

Yüzde Kodlaması (RFC 3986)

RFC 3986’ya göre, ayrılmamış karakter olmayan herhangi bir bayt, o baytın değerini temsil eden yüzde işareti ve iki büyük harf onaltılık basamak olarak kodlanır.

Asla kodlanması gerekmeyen ayrılmamış karakterler:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 - _ . ~

Özel Karakterler URL’leri Neden Bozar

Bir URL’nin tanımlanmış sözdizimi vardır. ?, &, =, #, / ve : karakterlerinin her birinin URL yapısında belirli rolleri vardır:

encodeURI vs encodeURIComponent

encodeURI("https://example.com/search?q=hello world")
// "https://example.com/search?q=hello%20world"
// ? ve = kodlanmaz

encodeURIComponent("hello world&goodbye=world")
// "hello%20world%26goodbye%3Dworld"
// & ve = kodlanır

Sorgu dizeleri oluşturmak için her zaman encodeURIComponent kullanın:

const params = {
  q: "café & résumé",
  redirect: "https://example.com/path?id=42"
};

const queryString = Object.entries(params)
  .map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`)
  .join("&");

+ vs %20 Boşluk Tartışması

Python’da fark açıktır:

from urllib.parse import quote, quote_plus
quote("hello world")       # "hello%20world"
quote_plus("hello world")  # "hello+world"

Yaygın Hatalar

Parametre değerleri yerine tam URL’yi kodlama

encodeURIComponent’e https://example.com/path?q=hello geçirirseniz, iki nokta üst üste, eğik çizgiler ve soru işaretinin tümü kodlanır.

Parametre anahtarlarını kodlamayı unutma

Anahtarlar da kullanıcı girişinden geliyorsa özel karakterler içerebilir. Hem anahtarları hem de değerleri kodlayın.

Çift kodlama

Zaten URL kodlu bir string alıp tekrar kodlarsanız, her %, %25 olur.