Url Kodlama ve HTML kodlama arasındaki fark


86

URL Kodlaması ile HTML Kodlaması arasındaki fark nedir ?


5
Bir URL'de kullanmak üzere kodlamak istiyorsanız, URL kodlamasını kullanırsınız. Bir HTML sayfasında görüntülenmek üzere kodlamak istiyorsanız, onu HTML kodlayın
Mitch Wheat

4
URL kodlaması, karakterleri URL'ler için geçerli olacak şekilde kodlayacaktır. Örneğin ?, %3FHTML kodlaması haline gelir , karakterleri HTML için geçerli olacak şekilde kodlar. Örneğin <olur&lt;
Matt Ellen

Yanıtlar:


85

HTML Kodlama, değiştirme gibi HTML öğeleriyle karışıklığı önlemek için HTML belgelerinde kullanılan dizelerdeki özel karakterlerden kaçar

"<hello>world</hello>" 

-e

"&lt;hello&gt;world&lt;/hello&gt;"

URL Kodlama, bir URL'deki dize değerleri için değiştirmek gibi benzer bir şey yapar

"hello+world = hello world"

-e

"hello%2Bworld+%3D+hello+world"

15
HTML kodlaması ve URL kodlaması temelde farklı şeyler yapar. Örneğin 'merhaba dünya' gibi HTML kodlarsanız ve onu bir url'ye eklemeye çalışırsanız, geçersiz bir url alırsınız. Her ikisi de önemlidir ve farklı durumlar için kullanılmalıdır.
Neil

1
Url'leri UrlEncoding ile kodlamak için birkaç HtmlEncode kullanımının, boşlukların kodlanmasıyla ilgili problemlerin ve diğer bazı özel karakterlerin gözden geçirilmesi ve değiştirilmesi gerekiyordu
PJUK

Unutmayın, UrlEncode yerine HtmlEncode kullanmak, HtmlEncode dizenizin her yerine "&" karakterleri koyduğundan, URL'ler için sorunlu olabilir. URL’yi alan web hizmetinizin ne beklediğine bağlı olarak, fazladan birkaç "&" karakteri çok sorunlu olabilir. Örneğin, web hizmetiniz bir URL'deki her parametrenin önünde bir "&" karakteri olmasını bekliyorsa, ancak bir grup ekstra "&" karakteri ekleyen HtmlEncode kullandıysanız, web hizmetiniz büyük olasılıkla bir hata alırsınız URL'yi yorumlamaya çalışır. Bu nedenle, HtmlEncode'un çeşitli kullanımlarını UrlEncode ile değiştirmek zorunda kaldım.
jdnew18

3
Lütfen Phill'i dinleme. Sorgu dizelerini kullandığına ve UrlEncode yerine HtmlEncode kullanarak modern url'ler oluşturduğuna inanmayı imkansız buluyorum. UrlEncode'un çoğunlukla yararsız olduğunu söylemek, bir süredir bu sitede gördüğüm en saçma şeylerden biri.
Nard Dog

23

urlEncode, özel karakterleri adresleme amacıyla web tarayıcıları / web sunucuları tarafından anlaşılabilen karakterlerle değiştirir ... dolayısıyla URL. Örneğin, boşluklar% 20, '=% 27 vb. İle değiştirilir ...

Şu referanslara bakın:

HtmlEncode, sayfanın içeriğini oluşturmak için HTML motorunun kendisi tarafından tanınan karakter dizeleriyle özel karakterleri değiştirir - &amp; or < = &lt; > = &lt;bu gibi şeyler , HTML motorunun bu karakterleri HTML biçimlendirmesinin parçaları olarak yorumlamasını engeller ve bu nedenle onları öyleymiş gibi oluşturur. Teller.

Bu referansa bakın:


Aslında URLEncode, boşlukları + ile değiştirir, bu da bazı durumlarda sorun olabilir.
NetMage

13

Hem HTML hem de URL'ler aslında çok kısıtlanmış dillerdir . Dil olarak belirli anahtar kelimelere veya operatörlere anlam katarlar. Ancak bu iki dil için de anahtar kelimeler neredeyse her zaman tek karakterlerdir. Örneğin

  • HTML:> ve <
  • URL: / ve:

Ancak her dilin kullanımında bu yapıları dilin anlamını sağlamayacak şekilde kullanmak mümkündür. Örneğin bu yazı bir> karakteri içeriyor. HTML olarak yorumlanmasını istemiyorum, sadece metin.

Bu, Kodlama ve Kod Çözme yöntemlerinin devreye girdiği yerdir. Bu yöntemler, sırasıyla bir dizge alacak ve aksi takdirde anahtar kelime olarak kabul edilecek karakterlerden herhangi birini, dilin bir parçası olarak yorumlanmayacak olan, çıkış karakterli bir biçime dönüştürecektir.

Örneğin: HtmlEncode'a> iletmek & gt;


3

HTMLEncode ve URLEncode, HTML ve URL'lerdeki geçersiz karakterlerle veya daha doğrusu, doğru yorumlanmaları için özel olarak yazılması gereken karakterlerle ilgilenir. Örneğin, HTML'de <ve> karakterleri etiketleri belirtmek için kullanılır. Dolayısıyla, 1 + 1 <2 + 2 gibi bir matematik formülü yazmak istiyorsanız, '<' normalde bir etiketin başlangıcı olarak yorumlanacaktır. HTMLEncoding bu karakteri "& lt;" bu, küçüktür işaretinin kodlanmış temsilidir. URLEncoding aynı şeyi yapar, ancak bazı çakışmalar olsa da özel karakterlerin farklı olduğu URL'ler için.


1

Hangi dilde çalıştığınızı bilmiyorum, ancak örneğin PHP kılavuzu iyi açıklamalar sunuyor.

URLEncode

-_ dışındaki tüm alfasayısal olmayan karakterlerin bulunduğu bir dize döndürür. yüzde (%) işareti ve ardından iki onaltılık rakam ve artı (+) işaretleri olarak kodlanmış boşluklarla değiştirilmiştir. Bir WWW formundan gönderilen verilerin kodlanmasıyla aynı şekilde kodlanır, bu da application / x-www-form-urlencoded ortam türünde olduğu gibi. Bu, »RFC 1738 kodlamasından (bkz. Rawurlencode ()) farklıdır, çünkü geçmiş nedenlerden dolayı boşluklar artı (+) işaretleriyle kodlanır.

Okumaya devam etmek

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.