URL kodlama ve çözme

URL'ler için metni yüzde olarak kodlayın veya %HH dizilerinin kodunu tekrar karakterlere dönüştürün. Bileşen modunu tam URI moduyla karşılaştırın ve %20 ile +'nın neden aynı olmadığını görün.

Tüm hesaplamalar tarayıcıda çalışır. Girdiğiniz hiçbir şey sunucuya gönderilmez.

01 hesaplayıcı

Sonuçlar yazarken güncellenir. Ctrl/Cmd+Enter birincil sonucu kopyalar.

Sonuç

    Çözümü göster

      URL Kodlama ve Kod Çözme, metne RFC 3986 yüzde kodlaması uygular ve "%HH" dizilerini karakterlere geri çevirir. Bileşen modu /, ? ve & gibi ayrılmış karakterleri kodlayarak tek bir sorgu parametresinin içinde güvenli bir şekilde yerleşebilmelerini sağlar. Tam URI modu yapısal sınırlayıcıları koruyarak tam adresin kullanılabilir bir bağlantı olarak kalmasını sağlar. Alan işleme hem '%20' hem de form kodlama artı işaretini sunar.

      Tüm kodlama ve kod çözme tarayıcınızda çalışır. Yapıştırdığınız hiçbir şey sunucuya gönderilmez.

      Bir URL'de güvenli kullanım için metni kodlayın

      Concept diagram: Girdiler leads to Bir URL'de güvenli kullanım için m… leads to SonuçGirdilerBir URL'de güvenlikullanım için m…Sonuç
      Bir URL'de güvenli kullanım için metni kodlayın.

      Yüzde kodlaması, güvenli olmayan veya ayrılmış baytları, bir yüzde işareti ve ardından iki onaltılık basamakla değiştirir. Rakamlar genellikle UTF-8'den gelen bayt değeridir. Bir dize girin, bileşen veya tam URI modunu seçin ve kodlanmış sonucu bir sorgu dizesine, yol bölümüne veya yönlendirme hedefine kopyalayın.

      Zaten ayrılmamış kümede bulunan karakterler değişmeden geçer. Diğer her şey bileşen modunda "%HH" dizileri haline gelir. Kod çözmede aynı kurallar kullanıldığında kodlama tersine çevrilebilir; form kodlamalı artı işaretlerini yol stili "%20" ile karıştırmak, kesintili gidiş-dönüşlerin olağan kaynağıdır.

      Yüzde olarak kodlanmış bir dizenin kodunu çöz

      Scale bar: 1 Girdi birimi equals 1.8 Çıktı birimi1 Girdi birimi1.8 Çıktı birimi
      Yüzde olarak kodlanmış bir dizenin kodunu çöz.

      Kod çözme, her bir "%" ve ardından gelen iki onaltılık rakamı bulur, bu çifti bir bayta dönüştürür ve orijinal metni seçilen karakter kodlamasıyla yeniden oluşturur. Onaltılık olmayan basamaklara sahip tek bir "%" veya "%" bir hatadır. Giriş "application/x-www-form-urlencoded" gövdelerinden geldiğinde artı işaretleri isteğe bağlı olarak boşluk olarak değerlendirilebilir.

      Bir değer iki kez kodlandığında iç içe kodlama görünür. Bir kez kod çözme işlemi, yine de gerçek bir yüzdeyi temsil eden "%25" dizilerini bırakabilir. Yalnızca ikinci katman kasıtlı olduğunda kodu yeniden çözün; kör çift kod çözme, gerçek bir '%' karakteri içeren verileri bozar.

      Ayrılmış ve ayrılmamış karakterleri anlayın

      Concept diagram: Girdiler leads to Ayrılmış ve ayrılmamış karakterler… leads to SonuçGirdilerAyrılmış ve ayrılmamışkarakterler…Sonuç
      Ayrılmış ve ayrılmamış karakterleri anlayın.

      RFC 3986, ASCII'yi hiçbir zaman bir URI'de kodlamaya ihtiyaç duymayan ayrılmamış karakterlere ve sınırlayıcılar gibi yapısal anlam taşıyan ayrılmış karakterlere ayırır. Ayrılmamış harfler, rakamlar ve -_.~ değişmez kalır. /, ? ve & gibi ayrılmış işaretler, URL'yi çerçeveleyen sözdizimi yerine veri olarak göründüklerinde yüzde olarak kodlanmalıdır.

      Ayrılmamış: "A" - "Z", "a" - "z", "0" - "9", kısa çizgi "-", alt çizgi "_", nokta ".", yaklaşık işareti "~"

      Ayrılmış (gen-delims): `: / ?

      Ayrılmış (alt sınırlamalar): ! $ & ' ( ) * + , ; =

      Ayrılmamış karakterler gerçek anlamda kalır. Ayrılmış karakterler sınırlayıcı olarak değil veri olarak göründüklerinde kodlanmalıdır. Parametre değerinin içindeki soru işareti veridir; sorgu dizesini başlatan soru işareti yapıdır. Mod seçimi, hesap makinesinin her karakterin hangi rolü oynadığını nasıl bildiğidir.

      Tek bir parametreye göre URL'nin tamamını kodlayın

      Comparison chart of Option A versus Option B across Case 1, Case 2, Case 3Case 1Case 2Case 3Option AOption B
      Tek bir parametreye göre URL'nin tamamını kodlayın.

      Tam URI kodlaması, JavaScript encodeURIye benzer şekilde yapısal karakterleri yalnız bırakır, böylece https:// ve yol eğik çizgileri hayatta kalır. Bileşen kodlaması, "encodeURIComponent"e benzer şekilde, bu karakterleri kodlar, böylece bir değer, çevreleyen URL'yi bozmadan bir parametrenin içine yerleşebilir. Yanlış modu seçmek ya bir bağlantıyı yok eder ya da sorguyu yanlış bölen sınırlayıcıları bırakır.

      InputFull-URI styleComponent style
      https://example.com/a bhttps://example.com/a%20bhttps%3A%2F%2Fexample.com%2Fa%20b
      red&bluered&bluered%26blue
      a=ba=ba%3Db

      Bir URL'nin tamamını bileşen moduyla kodlamak, onu bir bağlantı olarak yok eder: şema iki nokta üst üste ve eğik çizgiler "%3A" ve "%2F" olur. Tek bir parametrenin tam URI moduyla kodlanması & ve = bozulmadan kalır, bu da sorguyu yanlış böler. Dizinin kaplayacağı yuvayla eşleşen modu seçin.

      Eğik çizgiyi ve soru işaretini kodlayın

      Concept diagram: Girdiler leads to Eğik çizgiyi ve soru işaretini kod… leads to SonuçGirdilerEğik çizgiyi ve soruişaretini kod…Sonuç
      Eğik çizgiyi ve soru işaretini kodlayın.

      Bileşen modundaki fikstür dizesi / ve ?, %2F%20and%20%3F olur. Eğik çizgi ve soru işareti, burada yük metni olarak ele alınan ayrılmış sınırlayıcılardır, dolayısıyla her biri kaçar. Boşluklar "%20" olur, "ve" içindeki harfler ise ayrılmamış olur ve dize boyunca soldan sağa değişmeden geçer.

      CharacterReasonEncoded
      /reserved path delimiter%2F
      spacenot unreserved%20
      a, n, dunreserved lettersunchanged
      ?reserved query delimiter%3F

      Dize boyunca soldan sağa doğru ilerleyin: / kodlayın, alanı kodlayın, ve' iletin, alanı kodlayın, ? kodlayın. '%2F%20and%20%3F' sonucunun, örneğin 'q' adlı bir sorgu parametresine yerleştirilmesi güvenlidir. Aynı dizede tam URI modunun kullanılması / ve ?` değişmez değerlerini bırakır; bu yalnızca bu karakterlerin yük metni yerine yapı olarak kullanılması durumunda doğrudur.

      Artı işaretine karşılık %20'yi anlayın

      Comparison chart of Option A versus Option B across Case 1, Case 2, Case 3Case 1Case 2Case 3Option AOption B
      Artı işaretine karşılık %20'yi anlayın.

      Bir alan, URI yollarında ve RFC 3986'yı izleyen modern sorgu dizelerinde "%20" olarak kodlanır. "application/x-www-form-urlencoded" olarak gönderilen HTML formları, geçmişte boşlukları bunun yerine "+" olarak kodlar. Her iki kural da üretim trafiğinde görünür ve bunların aynıymış gibi ele alınması, karışık girdilerin kodunu çözerken en yaygın alan kodlama hatasıdır.

      ContextSpace encoding
      Path segment%20
      RFC 3986 query%20
      Form body / legacy query+

      Gerçek bir artı oturum açma verisi "%2B" olarak kodlanmalıdır, aksi takdirde form kod çözücüsü bunu boşluk olarak değerlendirecektir. Hesap makinesi hangi alan kuralının etkin olduğunu etiketler; böylece kodu çözülmüş bir "+", form modu açıkken artı karakteriyle karıştırılmaz ve yol modu açıkken "%20" reddedilmez.

      Bir URL'yi parçalarına ayırın

      Concept diagram: Girdiler leads to Bir URL'yi parçalarına ayırın leads to SonuçGirdilerBir URL'yi parçalarınaayırınSonuç
      Bir URL'yi parçalarına ayırın.

      Tipik bir URL'nin bir şeması, ana bilgisayarı, isteğe bağlı bağlantı noktası, yolu, sorgu dizesi ve parçası bulunur ve kodlama kuralları bölüme göre farklılık gösterir. ://, /, ?, &, = ve # gibi yapısal sınırlayıcılar adresi çerçevelediğinde değişmez kalır.

      Veri taşıyan parametre adları, parametre değerleri ve yol bölümleri, bu sınırlayıcılar onlara katılmadan önce bileşen modunda ayrı ayrı kodlanır.

      https://example.com:443/search?q=a%20b&lang=en#top
      └─┬─┘   └─────┬─────┘ └─┬──┘ └───────┬───────┘ └┬┘
      scheme       host     path        query      fragment
      PartRole
      SchemeProtocol, such as https
      HostDomain or IP, with optional port
      PathResource location, slash-separated
      QueryParameter list after ?, joined by &
      FragmentClient-side location after #, not sent to the server in the request URI the same way

      Bileşen modunda parametre adlarını ve değerlerini ayrı ayrı kodlayın, ardından değişmez & ve = ile birleştirin. Yol bölümlerini, boşluk veya ayrılmış karakterler içeriyorsa, bölümleri ayıran eğik çizgileri tam anlamıyla tutarak ayrı ayrı kodlayın.

      Karakter kodlama tablosunu okuyun

      Concept diagram: Girdiler leads to Karakter kodlama tablosunu okuyun leads to SonuçGirdilerKarakter kodlamatablosunu okuyunSonuç
      Karakter kodlama tablosunu okuyun.

      Aşağıdaki tablo, yaygın olarak ayrılmış ve güvenli olmayan karakterleri, UTF-8 bayt kodlaması altındaki yüzde formlarıyla birlikte listelemektedir. Boşluk "%20", ve işareti "%26" ve karma "%23" olur. ASCII olmayan karakterler birden fazla "%HH" birimine genişler çünkü her UTF-8 baytı tek bir soyut glif yerine ayrı olarak kodlanır.

      CharPercentNotes
      space%20Or + in form encoding
      !%21
      #%23Fragment delimiter
      $%24
      &%26Query pair delimiter
      '%27
      (%28
      )%29
      +%2BLiteral plus
      ,%2C
      /%2FPath delimiter
      :%3AScheme / host separator
      ;%3B
      =%3DParameter assignment
      ?%3FQuery start
      @%40Userinfo separator
      [%5B
      ]%5D

      ASCII olmayan metin önce UTF-8 bayt olarak ifade edilir, ardından her bayt yüzde olarak kodlanır. Bu nedenle tek bir karakter iki veya üç "%HH" birimine genişleyebilir. Base64 aracıyla birlikte Shift JIS ve benzeri eski setler için karakter kodlamanın ayrıntılı incelemeleri; bu sayfa, söz konusu kataloğu tekrarlamak yerine bağlantı vermektedir.

      Sık sorulan sorular

      Yüzde kodlama nedir?

      Yüzde kodlaması, bir baytı "%" ve ardından bu baytın değerinin iki onaltılık basamağıyla değiştirir. Ayrılmış ve ASCII olmayan karakterlerin, sözdizimi olarak okunmadan URL'lerin içinde dolaşmasına olanak tanır. Kod çözme, ikameyi tersine çevirir.

      Bileşen kodlaması ne zaman kullanılmalıdır?

      Tek bir parametre adı veya değeri, salt veri olan bir yol bölümü veya yapısal sınırlayıcıların yanına eklenecek herhangi bir dize için bileşen kodlamasını kullanın. URL'yi bölememeleri için /, ?, & ve = kodlar.

      Tam URI kodlaması ne zaman kullanılmalıdır?

      Giriş zaten tam bir URL olduğunda ve yalnızca boşluk gibi geçersiz karakterlerin değişmesi gerektiğinde tam URI kodlamasını kullanın. Yapısal iki nokta üst üste ve eğik çizgiler gerçek anlamda kaldığından sonuç tıklanabilir bir adres olarak kalır.

      Neden / ve ?, %2F%20and%20%3F oluyor?

      Bileşen modunda eğik çizgi ve soru işareti veri olarak kabul edilir, dolayısıyla "%2F" ve "%3F" olarak kodlanırlar. Boşluklar %20 olur. 'Ve' içindeki harfler ayrılmamıştır ve olduğu gibi kalır.

      + %20 ile aynı mı?

      Hayır. %20, bir alanın RFC 3986 kodlamasıdır. '+' yalnızca 'application/x-www-form-urlencoded' verilerindeki boşluk anlamına gelir. Gerçek bir artı "%2B" olmalıdır, aksi takdirde kod çözücüler onu boşluğa dönüştürecektir.

      Hangi karakterlerin hiçbir zaman kodlamaya ihtiyacı yoktur?

      Ayrılmamış küme: harfler, rakamlar, kısa çizgi, alt çizgi, nokta ve yaklaşık işareti. Bu karakterler her iki modda da gerçek anlamda kalır. Bunları kodlamak hala işe yarıyor ancak gereksiz uzunluk katıyor.

      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. Görünür bir karakter birden fazla "%HH" dizisi haline gelebilir. Kod çözme, orijinal metni yeniden oluşturmak için UTF-8 kullanmalıdır.

      Kodun iki kez çözülmesi bozuk bir URL'yi düzeltir mi?

      Yalnızca değer kasıtlı olarak iki kez kodlanmışsa. Aksi takdirde, ikinci geçiş verinin parçası olan gerçek %' dizilerini bozar. Yalnızca %25` desenleri ikinci bir katmanı gösterdiğinde kodu bir kez çözün, inceleyin ve kodu yeniden çözün.

      Bu Base64 ile aynı mı?

      Hayır. Yüzde kodlaması, URI'ler için karakterlerden kaçar. Base64, metin protokollerinde aktarım için rastgele baytları 64 karakterlik bir alfabeyle eşler. Her birini kendi işi için kullanın.

      Yapıştırılan URL'ler yükleniyor mu?

      Hayır. Kodlama ve kod çözme yalnızca tarayıcıda çalışır. Belirteçler veya oturum parçaları içeren sorgu dizeleri bu araç tarafından bir sunucuya iletilmez.

      Özet

      URL Kodlama ve Kod Çözme, tam URI'ler ve ayrı bileşenler için ayrı modlarla RFC 3986 kuralları kapsamında metni kodlar ve kodunu çözer. Fikstür / ve ? bileşen modunda %2F%20and%20%3F olur. Boşluklar, URI bağlamlarında "%20" kullanır ve form kodlamasında "+" kullanabilir, bu farklı bir kuraldır.

      Ayrılmış karakterler anlamlarını yalnızca yapı olarak aynen bırakıldığında korur; yük olduklarında bunları kodlayın. Tüm işler cihazda kalır.