web-dev-qa-db-ja.com

URLエンコードとHTMLエンコードの違い

RLエンコードHTMLエンコード の違いは何ですか?

79
Quintin Par

HTMLエンコーディングは、HTMLドキュメントで使用される文字列の特殊文字をエスケープして、変更などのHTML要素との混乱を防ぎます

"<hello>world</hello>" 

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

URLエンコードは、URLの文字列値に対して同様のことを行います。

"hello+world = hello world"

"hello%2Bworld+%3D+hello+world"
76
Mehrdad Afshari

urlEncodeは、特殊な文字を、Webブラウザ/ Webサーバーがアドレス指定の目的で理解できる文字に置き換えます。したがって、URLです。たとえば、スペースは%20、 '=%27などに置き換えられます...

これらの参照を参照してください。

HtmlEncodeは、ページのコンテンツをレンダリングするためにHTMLエンジン自体によって認識される文字列で特殊文字を置き換えます-&のようなものは&amp; or < = &lt; > = &lt;になります。これにより、HTMLエンジンはこれらの文字をHTMLマークアップの一部として解釈し、したがってレンダリングしませんそれらが文字列であるかのように。

このリファレンスを参照してください:

23
BenAlabaster

HTMLとURLはどちらも本質的に非常に制約されています言語。言語として、特定のキーワードまたは演算子に意味を追加します。ただし、これらの両方の言語では、キーワードはほとんど常に単一文字です。例えば

  • HTML:>および<
  • URL:/および:

languageを使用する場合、言語の意味を保証しない方法でこれらの構造を使用することは可能ですが。たとえば、この投稿には>文字が含まれています。私はそれがHTMLとして解釈されることを望まず、ただのテキストです。

ここで、エンコードおよびデコードメソッドが役立ちます。これらのメソッドはそれぞれ文字列を受け取り、それ以外の場合はキーワードとして扱われる文字を言語の一部として解釈されないエスケープ形式に変換します。

たとえば、HtmlEncodeに>を渡すとgtが返されます。

13
JaredPar

HTMLEncodeおよびURLEncodeは、HTMLおよびURLの無効な文字、より正確には、正しく解釈するために特別に記述する必要がある文字を処理します。たとえば、HTMLでは、タグを示すために<および>文字が使用されます。したがって、1 + 1 <2 + 2のような数式を作成する場合、通常、「<」はタグの始まりとして解釈されます。 HTMLEncodingは、この文字を「lt;」に変換しますこれは、小なり記号のエンコードされた表現です。 URLEncodingは同じことを行いますが、URLの場合は特殊文字が異なりますが、一部重複します。

3
Michael Bray

どの言語で作業しているのかわかりませんが、たとえばPHP manual は良い説明を提供します。

URLEncode

-_を除くすべての非英数字を含む文字列を返します。パーセント(%)記号とそれに続くプラス(+)記号としてエンコードされた2つの16進数とスペースに置き換えられました。 WWWフォームから投稿されたデータがエンコードされるのと同じ方法でエンコードされます。これは、application/x-www-form-urlencodedメディアタイプと同じ方法です。これは"RFC 1738エンコード(rawurlencode()を参照)とは異なり、歴史的な理由から、スペースはプラス(+)記号としてエンコードされます。

続きを読む

1
Pekka 웃