URL 인코딩과 HTML 인코딩의 차이점


85

URL 인코딩HTML 인코딩 의 차이점은 무엇입니까 ?


5
URL에서 사용하기 위해 인코딩하려면 URL 인코딩을 사용합니다. HTML 페이지에 표시하기 위해 인코딩하려면 HTML로 인코딩합니다
Mitch Wheat

4
URL 인코딩은 URL에 유효하도록 문자를 인코딩합니다. 예를 ?하게 %3F그들이 HTML에 대한 유효 있도록 HTML 인코딩은 문자를 인코딩합니다. 예를 <하게&lt;
마 엘렌에게

답변:


83

HTML 인코딩은 HTML 문서에서 사용되는 문자열의 특수 문자를 이스케이프하여 변경과 같은 HTML 요소와의 혼동을 방지합니다.

"<hello>world</hello>" 

...에

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

URL 인코딩은 변경과 같은 URL의 문자열 값에 대해 유사한 작업을 수행합니다.

"hello+world = hello world"

...에

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

15
HTML 인코딩과 URL 인코딩은 근본적으로 다른 작업을 수행합니다. 예를 들어 'hello world'와 같이 HTML로 인코딩하고 URL에 추가하려고하면 잘못된 URL이 표시됩니다. 둘 다 중요하며 다른 상황에서 사용해야합니다.
Neil

1
URL 인코딩에 대한 여러 HtmlEncode 사용을 UrlEncoding으로 대체하고 공백 및 기타 특수 문자 인코딩 문제
PJUK

UrlEncode 대신 HtmlEncode를 사용하면 HtmlEncode가 문자열 전체에 "&"문자를 배치하므로 URL에 문제가 될 수 있습니다. URL을 수신하는 웹 서비스에 따라 몇 가지 추가 "&"문자가 매우 문제가 될 수 있습니다. 예를 들어, 웹 서비스에서 URL의 각 매개 변수 앞에 "&"문자가 올 것으로 예상하지만 추가 "&"문자가 추가 된 HtmlEncode를 사용한 경우 웹 서비스에서 오류가 발생할 수 있습니다. URL 해석을 시도합니다. 바로 이런 이유로 HtmlEncode의 여러 용도를 UrlEncode로 대체해야했습니다.
jdnew18

3
필의 말을 듣지 마십시오. 그가 쿼리 문자열을 사용하고 UrlEncode 대신 HtmlEncode를 사용하여 최신 URL을 만들고 있다고 믿는 것은 불가능합니다. UrlEncode가 거의 쓸모 없다는 말은 내가이 사이트에서 한동안 본 것 중 가장 어리석은 일 중 하나입니다.
Nard Dog

23

urlEncode는 특수 문자를 주소 지정을 위해 웹 브라우저 / 웹 서버에서 이해할 수있는 문자로 대체합니다. 예를 들어 공백은 % 20, '= % 27 등으로 대체됩니다.

다음 참조를 참조하십시오.

HtmlEncode는 페이지의 콘텐츠를 렌더링하기 위해 HTML 엔진 자체에서 인식하는 문자열로 특수 문자를 대체합니다. &와 같은 &amp; or < = &lt; > = &lt;것은 HTML 엔진이 이러한 문자를 HTML 마크 업의 일부로 해석하지 못하도록하여 마치 원래처럼 렌더링합니다. 문자열.

이 참조를 참조하십시오 :


실제로 URLEncode는 공백을 +로 대체하므로 일부 상황에서 문제가 될 수 있습니다.
NetMage

13

HTML과 URL 모두 본질적으로 매우 제한된 언어 입니다. 언어로서 특정 키워드 또는 연산자에 의미를 추가합니다. 하지만이 두 언어 모두 키워드는 거의 항상 단일 문자입니다. 예를 들면

  • HTML :> 및 <
  • URL : / 및 :

언어 를 사용할 때 언어의 의미를 보장하지 않는 방식으로 이러한 구조를 사용할 수 있습니다. 예를 들어이 게시물에는> 문자가 포함되어 있습니다. 나는 그것이 HTML로 해석되는 것이 아니라 단지 텍스트로 해석되기를 바랍니다.

여기에서 Encode 및 Decode 메서드가 작동합니다. 이 메소드는 각각 문자열을 취하고 그렇지 않으면 키워드로 처리되는 문자를 언어의 일부로 해석되지 않는 이스케이프 형식으로 변환합니다.

예 :>를 HtmlEncode에 전달하면 & gt;


3

HTMLEncode 및 URLEncode는 HTML 및 URL의 유효하지 않은 문자 또는 정확하게 해석하기 위해 특별히 작성해야하는 문자를 처리합니다. 예를 들어, HTML에서 <및> 문자는 태그를 나타내는 데 사용됩니다. 따라서 1 + 1 <2 + 2와 같은 수학 공식을 작성하려면 일반적으로 '<'가 태그의 시작으로 해석됩니다. HTMLEncoding은이 문자를 "& lt;"로 바꿉니다. 보다 작음 기호의 인코딩 된 표현입니다. URLEncoding은 동일하지만 일부 겹치는 부분이 있지만 특수 문자가 다른 URL의 경우입니다.


1

어떤 언어로 작업하는지 모르겠지만 예를 들어 PHP 매뉴얼 에서 좋은 설명을 제공합니다.

URLEncode

-_를 제외한 모든 영숫자가 아닌 문자가 포함 된 문자열을 반환합니다. 퍼센트 (%) 기호 다음에 두 개의 16 진수 숫자와 더하기 (+) 기호로 인코딩 된 공백으로 대체되었습니다. WWW 양식에서 게시 된 데이터를 인코딩하는 것과 동일한 방식으로 인코딩됩니다. 이는 application / x-www-form-urlencoded 미디어 유형과 동일한 방식입니다. 이것은 역사적 이유로 공백이 더하기 (+) 기호로 인코딩된다는 점에서»RFC 1738 인코딩 (rawurlencode () 참조)과 다릅니다.

읽어

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.