Jaka jest różnica między kodowaniem adresu URL a kodowaniem HTML ?
?
Staje się kodem %3F
HTML, zakoduje znaki, więc są one prawidłowe dla HTML. Np. <
Staje się<
Jaka jest różnica między kodowaniem adresu URL a kodowaniem HTML ?
?
Staje się kodem %3F
HTML, zakoduje znaki, więc są one prawidłowe dla HTML. Np. <
Staje się<
Odpowiedzi:
Kodowanie HTML powoduje uniknięcie znaków specjalnych w ciągach znaków używanych w dokumentach HTML, aby zapobiec pomyłkom z elementami HTML, takimi jak zmiana
"<hello>world</hello>"
do
"<hello>world</hello>"
Kodowanie adresu URL działa podobnie w przypadku wartości ciągów w adresie URL, na przykład zmienia
"hello+world = hello world"
do
"hello%2Bworld+%3D+hello+world"
urlEncode zastępuje znaki specjalne znakami, które są zrozumiałe dla przeglądarek internetowych / serwerów WWW w celu adresowania ... stąd URL. Na przykład spacje są zastępowane przez% 20, '=% 27 itd ...
Zobacz te referencje:
HtmlEncode zastępuje znaki specjalne ciągami znaków, które są rozpoznawane przez sam silnik HTML w celu renderowania zawartości strony - takie rzeczy jak & stają się & or < = < > = <
tym, co uniemożliwia silnikowi HTML interpretowanie tych znaków jako części znaczników HTML i dlatego renderuje je tak, jakby były smyczki.
Zobacz to odniesienie:
Zarówno HTML, jak i adresy URL są zasadniczo bardzo ograniczonymi językami . Jako język dodają znaczenia określonym słowom kluczowym lub operatorom. Jednak w obu tych językach słowa kluczowe są prawie zawsze pojedynczymi znakami. Na przykład
W przypadku używania każdego języka możliwe jest jednak użycie tych konstrukcji w sposób, który nie zapewnia znaczenia języka. Na przykład ten post zawiera znak>. Nie chcę, aby był interpretowany jako HTML, tylko tekst.
W tym miejscu do gry wchodzą metody kodowania i dekodowania. Metody te odpowiednio pobiorą ciąg znaków i przekonwertują dowolny ze znaków, które w innym przypadku byłyby traktowane jako słowa kluczowe, do postaci ze znakami ucieczki, która nie zostanie zinterpretowana jako część języka.
Na przykład: Przekazanie> do HtmlEncode zwróci & gt;
HTMLEncode i URLEncode zajmują się nieprawidłowymi znakami w kodzie HTML i adresach URL, a dokładniej znakami, które muszą być specjalnie napisane, aby można je było poprawnie zinterpretować. Na przykład w HTML znaki <i> są używane do wskazania tagów. Tak więc, jeśli chcesz napisać formułę matematyczną, na przykład 1 + 1 <2 + 2, „<” normalnie zostanie zinterpretowany jako początek znacznika. HTMLEncoding zamienia ten znak na „& lt;” który jest zakodowaną reprezentacją znaku mniejszości. URLEncoding robi to samo, ale dla adresów URL, dla których znaki specjalne są różne, chociaż niektóre się nakładają.
Nie wiem, w jakim języku pracujesz, ale na przykład podręcznik PHP zawiera dobre wyjaśnienia.
URLEncode
Zwraca ciąg, w którym wszystkie znaki niealfanumeryczne oprócz -_. zostały zastąpione znakiem procentu (%), po którym następują dwie cyfry szesnastkowe i spacje zakodowane jako znaki plus (+). Jest on kodowany w taki sam sposób, jak zakodowane dane z formularza WWW, czyli tak samo jak w typie mediów application / x-www-form-urlencoded. Różni się to od kodowania »RFC 1738 (patrz rawurlencode ()) tym, że ze względów historycznych spacje są kodowane jako znaki plus (+).