ホームページ > ウェブフロントエンド > jsチュートリアル > Escape、encodeURI、または encodeURIComponent: クエリ文字列のエンコーディングにどちらを使用する場合?

Escape、encodeURI、または encodeURIComponent: クエリ文字列のエンコーディングにどちらを使用する場合?

Barbara Streisand
リリース: 2024-12-11 02:12:09
オリジナル
255 人が閲覧しました

Escape, encodeURI, or encodeURIComponent: When to Use Which for Query String Encoding?

クエリ文字列のエンコーディングに Escape、encodeURI、または encodeURIComponent を使用する場合

クエリ文字列を Web サーバーに送信するコンテキストでは、適切なエンコード方法は次によって異なります。特定のエンコード要件。

escape()

escape() 関数ECMAScript 仕様で非推奨になっているため、使用しないでください。 @、_、*、.、および - を除くすべての特殊文字をエンコードします。

encodeURI()

機能的な URL が必要な場合は、encodeURI() を使用します。 URL 用に特別に予約されている文字を除くすべての文字をエンコードします。これらの予約文字には、/、&、?、:、および @ が含まれます。

encodeURIComponent()

URL パラメーターの値をエンコードする場合は、encodeURIComponent() を使用します。明示的に非予約として指定された文字を除くすべての文字をエンコードします。これらの予約されていない文字には、/、?、:、および @ が含まれます。

例:

次のクエリ文字列をエンコードするには:

http://www.example.org/a file with spaces.html
ログイン後にコピー

You encodeURI() を使用して、次のエンコードされたデータを取得します。 URL:

http://www.example.org/a%20file%20with%20spaces.html
ログイン後にコピー

ただし、クエリ文字列内のパラメータの値をエンコードしたい場合は、encodeURIComponent():

var p1 = encodeURIComponent("http://example.org/?a=12&b=55")
ログイン後にコピー

結果のエンコードされたパラメータ値は次のようになります。次に、ベース URL に追加して完全な URL を形成します:

var url = "http://example.net/?param1=" + p1 + "&param2=99"
ログイン後にコピー

これにより、次のような完全にエンコードされた結果が得られます。 URL:

http://example.net/?param1=http%3A%2F%2Fexample.org%2F%Ffa%3D12%26b%3D55&param2=99
ログイン後にコピー

encodeURIComponent() は ' 文字をエンコードしないことに注意することが重要です。これは、HTML 属性を構築するときに適切に処理されないと、セキュリティ上の脆弱性を引き起こす可能性があります。

以上がEscape、encodeURI、または encodeURIComponent: クエリ文字列のエンコーディングにどちらを使用する場合?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート