0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
設定
テキスト文字列をコード化およびデコードして、URL で安全に使用できるようにします。コンポーネント は、すべての予約文字をコード化します。これは、クエリパラメータの値に最適です。完全な URL は、URL の構造(スキーマ、バリ、疑問符)を保持します。HTML フォーム内のスペースには、+ を使用してください(application/x-www-form-urlencoded)。
操作
範囲
スペース
0

仕組み

URL エンコード(パーセントエンコーディング)は、アドレスにそのまま書けない文字を、そのバイト値を持つ %XX の並びに置き換えます。たとえば空白は %20 になります。

「コンポーネント」の範囲では、予約文字(= & / ? #)もエスケープします。パラメーターの値にはこちらを使います。「URL 全体」はアドレスの構造を保ちます。URL 全体にはこちらを使います。

HTML フォームでは空白は +(application/x-www-form-urlencoded)として符号化されます。それ以外の場合は、標準の RFC 3986 に従って %20 を使います。

hola mundo & máshola%20mundo%20%26%20m%C3%A1s「&」はパラメーターの区切りと混同しないようにエスケープされます(%26)。「á」は UTF-8 で符号化されます(%C3%A1)。
a=1&b=2a%3D1%26b%3D2
https://sitio.com/á b?x=1 2URL completa: https://sitio.com/%C3%A1%20b?x=1%202「URL 全体」モードでは ://、/、? は保持され、アドレスを壊すものだけがエスケープされます。

ユースケース

  • URL を手で組み立てるときに、クエリパラメーターを安全に構築する。
  • &、=、空白、アクセント記号を含む値を、GET リクエストで送る前に符号化する。
  • URL をデコードして、各パラメーターがどの値を持つかを読み取る。
  • フォーム送信用に application/x-www-form-urlencoded の本文を用意する。

よくある質問

「コンポーネント」と「URL 全体」の違いは何ですか?

「コンポーネント」(encodeURIComponent)は =、&、/、?、# もエスケープします。個々の値向けです。「URL 全体」(encodeURI)はこれらの構造文字を保持します。URL 全体向けです。

空白には + と %20 のどちらをいつ使いますか?

+ はフォームの本文(application/x-www-form-urlencoded)にのみ当てはまります。URL の他の部分では、空白の標準は %20 です。

なぜ「á」は 1 つの %XX ではなく %C3%A1 になるのですか?

UTF-8 で符号化されるためです。ASCII 以外の文字は複数バイトを占め、各バイトがそれぞれの %XX の並びで表されます。

URL をエンコードすると安全になりますか?

いいえ。構文レベルで有効にするだけです。暗号化ではなく、内容を保護するものでもありません。