RevealTheme logo

URL Kodlayıcı ve Kod Çözücü

Metni URL açısından güvenli kodlamaya (yüzde kodlaması) ve tersine dönüştürün. Sorgu dizeleri, yönlendirmeler ve OAuth akışları için kullanışlıdır.

Bu araç nasıl kullanılır

  1. 1

    Choose a mode with the Encode or Decode button at the top (Encode is selected by default).

  2. 2

    Type or paste your text into the input box — a raw value to encode, or a percent-encoded string to decode.

  3. 3

    Click Run to convert the text; the result appears in the monospace box below.

  4. 4

    Copy the output from the result box, or switch modes and click Run again to reverse the conversion.

URL kodlaması nedir ve ne zaman ihtiyaç duyarsınız?

URL kodlaması (RFC 3986'da belirtilen 'yüzde kodlaması' olarak da adlandırılır), URL'lerde özel bir anlamı olan karakterleri —veya doğrudan URL'lerde güvenli olmayan karakterleri— '%XX' onaltılık kaçış dizisine dönüştürme işlemidir. URL belirtimi, yapısal anlamı olan belirli karakterleri ayırır: '?' sorgu dizesini başlatır, '#' parçayı başlatır, '&' sorgu parametrelerini ayırır, '/' yol bölümlerini ayırır vb. Kullanıcı girişi bu karakterlerden herhangi birini içeriyorsa ve onu olduğu gibi bir URL'ye gömerseniz, ayrıştırıcı onu yanlış yorumlar. URL kodlaması, her ayrılmış veya güvenli olmayan karakteri '%' ile öncelenen onaltılık bayt gösterimiyle değiştirerek bunu önler. Boşluk %20'ye, '&' %26'ya, '=' %3D'ye dönüşür. ASCII olmayan karakterler (Kiril, Çince, emoji) çok baytlı UTF-8 dizilerine dönüştürülür ve her bayt yüzde olarak kodlanır. Bir bağlantıya tıkladığınızda tarayıcılar bunu otomatik olarak yönetir, ancak kod aracılığıyla bir URL oluşturduğunuzda —bir arama sorgusu, bir yönlendirme hedefi, bir OAuth geri çağrısı veya bir webhook imzası oluştururken— kullanıcının sağladığı değerleri önce kodlamanız gerekir. Bu araç, JavaScript kodunuzun kullanacağı encodeURIComponent / decodeURIComponent işlevlerinin aynısını kullanır, böylece davranış üretim ortamıyla tam olarak eşleşir.

Yaygın kullanım örnekleri

  • Bir arama URL'sine eklemeden önce kullanıcı arama terimlerini kodlayın (?q=user+input).

  • Bir OAuth redirect_uri parametresini bir yetkilendirme sunucusuna güvenle iletin.

  • Sorgu dizesinde kodlanmış JSON yükleri içeren webhook URL'leri oluşturun.

  • Başka URL'lerden geçirilirken hayatta kalması için bir 'returnTo' URL'sini kodlayın.

  • Form gönderiminden sonra tarayıcı adres çubuklarında gördüğünüz kodlanmış değerleri çözün.

  • Hatalı biçimlendirilmiş bir URL'nin nasıl ayrıştırıldığını test edin — özel bir karakteri kodlayın ve ne olduğunu görün.

Sıkça sorulan sorular

Bir URL'yi ne zaman kodlamalıyım?
Kullanıcının sağladığı değerleri bir URL'ye koymadan önce her zaman kodlayın: sorgu parametreleri, yol bölümleri veya parçalar. Kodlamamak, ince hataların en yaygın kaynaklarından biridir: 'kediler & köpekler' değeri, 'kediler%20%26%20köpekler' olarak kodlanana kadar bir sorgu dizesini bozar.
encodeURI ile encodeURIComponent arasındaki fark nedir?
encodeURI tam URL'ler içindir: '/', '?', '&', '=' gibi yapısal karakterleri bir URL'de anlamları olduğu için olduğu gibi bırakır. encodeURIComponent ise URL'nin parçaları (sorgu değerleri, yol bölümleri) içindir: alfanümerik olmayan her şeyi kodlar. Ayrı ayrı sorgu değerlerinde encodeURIComponent kullanın; kullanıcının sağladığı bir sorgu değerinde asla encodeURI kullanmayın ('&' karakterini kaçırmaz ve sorgu dizenizi bozar).
URL açısından güvenli Base64, URL kodlamasından nasıl farklıdır?
Bunlar farklı kavramlardır. URL kodlaması (bu araç), özel karakterleri karakter karakter değiştirir. URL açısından güvenli Base64 ise '+' ve '/' yerine '-' ve '_' kullanan bir Base64 çeşididir; böylece sonuç, ek bir kodlama olmadan zaten URL açısından güvenlidir.
'+' neden bazen boşluk olarak çözülür?
application/x-www-form-urlencoded (form gönderimleri) içinde '+', bir boşluğun kısaltmasıdır. Çoğu kod çözücü bunu korur. Modern URI ayrıştırmasında ise '%20', boşluğun doğru kodlamasıdır. decodeURIComponent, '+' karakterini gerçek bir '+' olarak ele alır; '+' karakterini boşluğa dönüştürmek için decodeURI veya bir form kod çözücü kullanın.
ASCII olmayan karakterler nasıl kodlanır?
Önce UTF-8 baytlarına dönüştürülürler, ardından her bayt yüzde olarak kodlanır. Böylece 'café', 'caf%C3%A9' olur: 'é', iki UTF-8 baytıdır (0xC3 0xA9). Bu araç UTF-8'i doğru şekilde yönetir; bazı eski araçlar Latin-1 kullanarak kodlama yapar ve bu da farklı bir çıktı üretir.
URL kodlaması, HTML varlık kodlamasıyla aynı şey mi?
Hayır. URL kodlaması (%XX), karakterleri URL'ler için kaçırır. HTML varlık kodlaması (&, <), karakterleri HTML işaretlemesi için kaçırır. Bağlamlar farklıdır; birini diğerinin bağlamında kodlamak yaygın bir XSS hatasıdır.

İlgili araçlar